package notifications import ( gmessaging "github.com/tech/sendico/pkg/generated/gmessaging" messaging "github.com/tech/sendico/pkg/messaging/envelope" "github.com/tech/sendico/pkg/model" nm "github.com/tech/sendico/pkg/model/notification" "github.com/tech/sendico/pkg/mservice" "go.mongodb.org/mongo-driver/v2/bson" "google.golang.org/protobuf/proto" ) type AccountNotification struct { messaging.Envelope accountRef bson.ObjectID verificationToken string } func (acn *AccountNotification) Serialize() ([]byte, error) { var msg gmessaging.AccountCreatedEvent msg.AccountRef = acn.accountRef.Hex() msg.VerificationToken = acn.verificationToken data, err := proto.Marshal(&msg) if err != nil { return nil, err } return acn.Envelope.Wrap(data) } func NewAccountNotification(action nm.NotificationAction) model.NotificationEvent { return model.NewNotification(mservice.Accounts, action) } func NewAccountImp(sender string, accountRef bson.ObjectID, action nm.NotificationAction, verificationToken string) messaging.Envelope { return &AccountNotification{ Envelope: messaging.CreateEnvelope(sender, NewAccountNotification(action)), accountRef: accountRef, verificationToken: verificationToken, } }