Skip to content
Snippets Groups Projects
Commit fc7ab445 authored by Alexander Kovalev's avatar Alexander Kovalev
Browse files

Merge branch 'feature/MRM-8213' into 'release/v0.22'

MRM-8213: fix generating otp code and notification sending

See merge request mashroom/backend/invitation!40
parents 17dfbae7 cf2a4b44
Branches
Tags
No related merge requests found
......@@ -72,7 +72,7 @@ func (repo *repositoryImplContactValidation) ContactValidationGetLatestByParams(
var cv model.ContactValidation
err := repo.ContactValidations.FindOne(ctx, cond, options.FindOne().SetSort(bson.M{"expires_at": 1})).Decode(&cv)
err := repo.ContactValidations.FindOne(ctx, cond, options.FindOne().SetSort(bson.M{"expires_at": -1})).Decode(&cv)
if err != nil {
return nil, err
}
......
......@@ -4,12 +4,13 @@ import (
"context"
"time"
"gitlab.mashroom.com/mashroom/backend/invitation/internal/service/render"
"gitlab.mashroom.com/mashroom/backend/common/api/grpcerr"
"gitlab.mashroom.com/mashroom/backend/common/generic/log"
invitation "gitlab.mashroom.com/mashroom/backend/invitation/api"
"gitlab.mashroom.com/mashroom/backend/invitation/internal/model"
"gitlab.mashroom.com/mashroom/backend/invitation/internal/service/render"
messaging "gitlab.mashroom.com/mashroom/backend/messaging/api"
notification "gitlab.mashroom.com/mashroom/backend/notification/api"
)
func (srv *serviceImpl) ContactValidationCreate(
......@@ -75,11 +76,53 @@ func (srv *serviceImpl) ContactValidationCreate(
"otp": cv.Otp,
}).Debug("otp generated")
err = srv.deliverNotification(ctx, cv)
if err != nil {
return nil, err
}
return &invitation.ContactValidationCreateResponse{
ContactValidation: render.ContactValidation(cv),
}, nil
}
func (srv *serviceImpl) deliverNotification(
ctx context.Context,
model *model.ContactValidation,
) error {
contacts := &notification.Contacts{}
var entity notification.Entity
switch model.Type {
case invitation.ContactValidationType_CONTACT_VALIDATION_EMAIL:
entity = notification.Entity_ENTITY_USER_EMAIL
contacts.Email = model.Key
case invitation.ContactValidationType_CONTACT_VALIDATION_PHONE:
entity = notification.Entity_ENTITY_USER_PHONE
contacts.Phone = model.Key
}
_, err := srv.Connections.Notification.SendNotification(ctx, &notification.SendNotificationRequest{
Entity: entity,
Action: notification.Action_ACTION_VERIFY,
Targets: []*notification.Target{
{
Role: notification.Role_ROLE_AUTHOR,
Contacts: contacts,
},
},
Embeds: []*notification.EventEmbed{
{
EmbedType: messaging.EmbedType_EMBED_TYPE_TOKEN,
EmbedValue: model.Otp,
},
},
})
return err
}
func (srv *serviceImpl) ContactValidationVerify(
ctx context.Context,
req *invitation.ContactValidationVerifyRequest,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment