op_set_metadata.go

 1package bug
 2
 3import (
 4	"github.com/MichaelMure/git-bug/entity"
 5	"github.com/MichaelMure/git-bug/entity/dag"
 6	"github.com/MichaelMure/git-bug/identity"
 7)
 8
 9func NewSetMetadataOp(author identity.Interface, unixTime int64, target entity.Id, newMetadata map[string]string) *dag.SetMetadataOperation[*Snapshot] {
10	return dag.NewSetMetadataOp[*Snapshot](SetMetadataOp, author, unixTime, target, newMetadata)
11}
12
13// Convenience function to apply the operation
14func SetMetadata(b Interface, author identity.Interface, unixTime int64, target entity.Id, newMetadata map[string]string) (*dag.SetMetadataOperation[*Snapshot], error) {
15	op := NewSetMetadataOp(author, unixTime, target, newMetadata)
16	if err := op.Validate(); err != nil {
17		return nil, err
18	}
19	b.Append(op)
20	return op, nil
21}