Some checks failed
ci/woodpecker/push/billing_fees Pipeline was successful
ci/woodpecker/push/bff Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/chain_gateway Pipeline was successful
ci/woodpecker/push/fx_ingestor 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
50 lines
1.0 KiB
Go
50 lines
1.0 KiB
Go
package paymethoddb
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tech/sendico/pkg/auth"
|
|
"github.com/tech/sendico/pkg/db/policy"
|
|
"github.com/tech/sendico/pkg/mlogger"
|
|
"github.com/tech/sendico/pkg/model"
|
|
"github.com/tech/sendico/pkg/mservice"
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
)
|
|
|
|
type PaymentMethodsDB struct {
|
|
auth.ProtectedDBImp[*model.PaymentMethod]
|
|
auth.ArchivableDB[*model.PaymentMethod]
|
|
}
|
|
|
|
func Create(ctx context.Context,
|
|
logger mlogger.Logger,
|
|
enforcer auth.Enforcer,
|
|
pdb policy.DB,
|
|
db *mongo.Database,
|
|
) (*PaymentMethodsDB, error) {
|
|
p, err := auth.CreateDBImp[*model.PaymentMethod](ctx, logger, pdb, enforcer, mservice.PaymentMethods, db)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
createEmpty := func() *model.PaymentMethod {
|
|
return &model.PaymentMethod{}
|
|
}
|
|
|
|
getArchivable := func(c *model.PaymentMethod) model.Archivable {
|
|
return &c.ArchivableBase
|
|
}
|
|
|
|
res := &PaymentMethodsDB{
|
|
ProtectedDBImp: *p,
|
|
ArchivableDB: auth.NewArchivableDB(
|
|
p.DBImp,
|
|
logger,
|
|
p.Enforcer,
|
|
createEmpty,
|
|
getArchivable,
|
|
),
|
|
}
|
|
return res, nil
|
|
}
|