move api/server to api/edge/bff
This commit is contained in:
41
api/edge/bff/internal/server/verificationimp/store.go
Normal file
41
api/edge/bff/internal/server/verificationimp/store.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package verificationimp
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/tech/sendico/pkg/db/verification"
|
||||
"github.com/tech/sendico/pkg/merrors"
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
"go.mongodb.org/mongo-driver/v2/bson"
|
||||
)
|
||||
|
||||
type ConfirmationStore struct {
|
||||
db verification.DB
|
||||
}
|
||||
|
||||
func NewStore(db verification.DB) *ConfirmationStore {
|
||||
return &ConfirmationStore{db: db}
|
||||
}
|
||||
|
||||
func (s *ConfirmationStore) Create(
|
||||
ctx context.Context,
|
||||
request *verification.Request,
|
||||
) (verificationCode string, err error) {
|
||||
return s.db.Create(ctx, request)
|
||||
}
|
||||
|
||||
func (s *ConfirmationStore) Verify(
|
||||
ctx context.Context,
|
||||
accountRef bson.ObjectID,
|
||||
purpose model.VerificationPurpose,
|
||||
code string,
|
||||
) (target string, err error) {
|
||||
t, err := s.db.Consume(ctx, accountRef, purpose, code)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if t.Purpose != purpose {
|
||||
return "", merrors.DataConflict("token has different verificaton purpose")
|
||||
}
|
||||
return t.Target, nil
|
||||
}
|
||||
Reference in New Issue
Block a user