package notifications import ( messaging "github.com/tech/sendico/pkg/messaging/envelope" gmessaging "github.com/tech/sendico/pkg/generated/gmessaging" "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/bson/primitive" "google.golang.org/protobuf/proto" ) type PasswordResetNotification struct { messaging.Envelope accountRef primitive.ObjectID resetToken string } func (prn *PasswordResetNotification) Serialize() ([]byte, error) { var msg gmessaging.PasswordResetEvent msg.AccountRef = prn.accountRef.Hex() msg.ResetToken = prn.resetToken data, err := proto.Marshal(&msg) if err != nil { return nil, err } return prn.Envelope.Wrap(data) } func NewPasswordResetNotification(action nm.NotificationAction) model.NotificationEvent { return model.NewNotification(mservice.Accounts, action) } func NewPasswordResetImp(sender string, accountRef primitive.ObjectID, resetToken string, action nm.NotificationAction) messaging.Envelope { return &PasswordResetNotification{ Envelope: messaging.CreateEnvelope(sender, NewPasswordResetNotification(action)), accountRef: accountRef, resetToken: resetToken, } }