Some checks failed
ci/woodpecker/push/bff Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/fx_ingestor Pipeline was successful
ci/woodpecker/push/billing_fees Pipeline was successful
ci/woodpecker/push/chain_gateway Pipeline was successful
ci/woodpecker/push/fx_oracle Pipeline was successful
ci/woodpecker/push/frontend Pipeline was successful
ci/woodpecker/push/nats Pipeline was successful
ci/woodpecker/push/ledger Pipeline was successful
ci/woodpecker/push/notification Pipeline was successful
ci/woodpecker/push/payments_orchestrator Pipeline was successful
ci/woodpecker/push/bump_version Pipeline failed
27 lines
872 B
Go
27 lines
872 B
Go
package confirmationdb
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/tech/sendico/pkg/db/repository"
|
|
"github.com/tech/sendico/pkg/db/repository/builder"
|
|
"github.com/tech/sendico/pkg/model"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
func (db *ConfirmationDB) FindActive(ctx context.Context, accountRef primitive.ObjectID, destination string, target model.ConfirmationTarget, now int64) (*model.ConfirmationCode, error) {
|
|
var res model.ConfirmationCode
|
|
query := repository.Query().
|
|
Filter(repository.Field(fieldAccountRef), accountRef).
|
|
Filter(repository.Field(fieldDestination), destination).
|
|
Filter(repository.Field(fieldTarget), target).
|
|
Filter(repository.Field(fieldUsed), false).
|
|
Comparison(repository.Field(fieldExpiresAt), builder.Gt, time.Unix(now, 0))
|
|
|
|
if err := db.FindOne(ctx, query, &res); err != nil {
|
|
return nil, err
|
|
}
|
|
return &res, nil
|
|
}
|