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 PasswordResetNotification struct { messaging.Envelope accountRef bson.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 bson.ObjectID, resetToken string, action nm.NotificationAction) messaging.Envelope { return &PasswordResetNotification{ Envelope: messaging.CreateEnvelope(sender, NewPasswordResetNotification(action)), accountRef: accountRef, resetToken: resetToken, } }