This commit is contained in:
Stephan D
2026-03-10 12:31:09 +01:00
parent d87e709f43
commit e77d1ab793
287 changed files with 2089 additions and 1550 deletions

View File

@@ -71,7 +71,7 @@ func (db *verificationDB) Consume(
zap.String("account_ref", accountRefHex),
)
var direct model.VerificationToken
err := db.DBImp.FindOne(ctx, magicFilter, &direct)
err := db.FindOne(ctx, magicFilter, &direct)
switch {
case err == nil:
token = &direct
@@ -118,7 +118,7 @@ func (db *verificationDB) Consume(
zap.Any("scope_filter", scopeFilter.BuildQuery()),
)
tokens, err := mutil.GetObjects[model.VerificationToken](
ctx, db.Logger, scopeFilter, nil, db.DBImp.Repository,
ctx, db.Logger, scopeFilter, nil, db.Repository,
)
if err != nil {
if errors.Is(err, merrors.ErrNoData) {
@@ -182,7 +182,7 @@ func (db *verificationDB) Consume(
zap.String("account_ref", accountRefHex),
)
incremented, patchErr := db.DBImp.PatchMany(
incremented, patchErr := db.PatchMany(
ctx,
activeFilter,
repository.Patch().Inc(repository.Field("attempts"), 1),
@@ -272,7 +272,7 @@ func (db *verificationDB) Consume(
mzap.StorableRef(token),
)
updated, err := db.DBImp.PatchMany(
updated, err := db.PatchMany(
ctx,
consumeFilter,
repository.Patch().Set(repository.Field("usedAt"), now),
@@ -309,7 +309,7 @@ func (db *verificationDB) Consume(
}
// 5) Consume failed → increment attempts
incremented, incrementErr := db.DBImp.PatchMany(
incremented, incrementErr := db.PatchMany(
ctx,
repository.IDFilter(token.ID),
repository.Patch().Inc(repository.Field("attempts"), 1),
@@ -335,7 +335,7 @@ func (db *verificationDB) Consume(
// 6) Re-check state
var fresh model.VerificationToken
if err := db.DBImp.FindOne(ctx, repository.IDFilter(token.ID), &fresh); err != nil {
if err := db.FindOne(ctx, repository.IDFilter(token.ID), &fresh); err != nil {
db.Logger.Warn("Verification consume failed to re-check token state",
zap.String("purpose", string(purpose)),
zap.Bool("account_scoped", accountScoped),

View File

@@ -166,22 +166,22 @@ func (db *verificationDB) Create(
// Optional idempotency key support for safe retries.
if hasIdempotency {
var sameToken model.VerificationToken
err := db.DBImp.FindOne(tx, hashFilter(token.VerifyTokenHash), &sameToken)
err := db.FindOne(tx, hashFilter(token.VerifyTokenHash), &sameToken)
switch {
case err == nil:
// Same hash means the same Create operation already succeeded.
return nil, nil
return struct{}{}, nil
case errors.Is(err, merrors.ErrNoData):
default:
return nil, err
}
var existing model.VerificationToken
err = db.DBImp.FindOne(tx, idempotencyFilter(request, idempotencyKey), &existing)
err = db.FindOne(tx, idempotencyFilter(request, idempotencyKey), &existing)
switch {
case err == nil:
// Existing request with the same idempotency scope has already succeeded.
return nil, nil
return struct{}{}, nil
case errors.Is(err, merrors.ErrNoData):
default:
return nil, err
@@ -193,7 +193,7 @@ func (db *verificationDB) Create(
cutoff := now.Add(-*request.Cooldown)
var recent model.VerificationToken
err := db.DBImp.FindOne(tx, cooldownActiveContextFilter(request, now, cutoff), &recent)
err := db.FindOne(tx, cooldownActiveContextFilter(request, now, cutoff), &recent)
switch {
case err == nil:
return nil, verification.ErrorCooldownActive()
@@ -204,7 +204,7 @@ func (db *verificationDB) Create(
}
// 2) Invalidate active tokens for this context
if _, err := db.DBImp.PatchMany(
if _, err := db.PatchMany(
tx,
activeFilter,
repository.Patch().Set(repository.Field("usedAt"), now),
@@ -216,20 +216,20 @@ func (db *verificationDB) Create(
if err := db.DBImp.Create(tx, token); err != nil {
if hasIdempotency && errors.Is(err, merrors.ErrDataConflict) {
var sameToken model.VerificationToken
findErr := db.DBImp.FindOne(tx, hashFilter(token.VerifyTokenHash), &sameToken)
findErr := db.FindOne(tx, hashFilter(token.VerifyTokenHash), &sameToken)
switch {
case findErr == nil:
return nil, nil
return struct{}{}, nil
case errors.Is(findErr, merrors.ErrNoData):
default:
return nil, findErr
}
var existing model.VerificationToken
findErr = db.DBImp.FindOne(tx, idempotencyFilter(request, idempotencyKey), &existing)
findErr = db.FindOne(tx, idempotencyFilter(request, idempotencyKey), &existing)
switch {
case findErr == nil:
return nil, nil
return struct{}{}, nil
case errors.Is(findErr, merrors.ErrNoData):
default:
return nil, findErr
@@ -237,7 +237,7 @@ func (db *verificationDB) Create(
}
return nil, err
}
return nil, nil
return struct{}{}, nil
})
if err != nil {

View File

@@ -211,7 +211,7 @@ func (m *memoryTokenRepository) InsertMany(ctx context.Context, objs []storable.
}
return nil
}
func (m *memoryTokenRepository) FindManyByFilter(_ context.Context, query builder.Query, decoder rd.DecodingFunc) error {
func (m *memoryTokenRepository) FindManyByFilter(ctx context.Context, query builder.Query, decoder rd.DecodingFunc) error {
m.mu.Lock()
var matches []interface{}
for _, id := range m.order {
@@ -231,9 +231,11 @@ func (m *memoryTokenRepository) FindManyByFilter(_ context.Context, query builde
if err != nil {
return err
}
defer cur.Close(context.Background())
defer func() {
_ = cur.Close(ctx)
}()
for cur.Next(context.Background()) {
for cur.Next(ctx) {
if err := decoder(cur); err != nil {
return err
}