Merge pull request 'fixed upsert' (#435) from mntx-433 into main
All checks were successful
ci/woodpecker/push/gateway_mntx Pipeline was successful
All checks were successful
ci/woodpecker/push/gateway_mntx Pipeline was successful
Reviewed-on: #435
This commit was merged in pull request #435.
This commit is contained in:
@@ -11,10 +11,12 @@ import (
|
||||
"github.com/tech/sendico/gateway/mntx/storage"
|
||||
"github.com/tech/sendico/gateway/mntx/storage/model"
|
||||
clockpkg "github.com/tech/sendico/pkg/clock"
|
||||
"github.com/tech/sendico/pkg/db/storable"
|
||||
"github.com/tech/sendico/pkg/merrors"
|
||||
msg "github.com/tech/sendico/pkg/messaging"
|
||||
"github.com/tech/sendico/pkg/mlogger"
|
||||
mntxv1 "github.com/tech/sendico/pkg/proto/gateway/mntx/v1"
|
||||
"go.mongodb.org/mongo-driver/v2/bson"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
@@ -87,6 +89,9 @@ func (p *cardPayoutProcessor) Submit(ctx context.Context, req *mntxv1.CardPayout
|
||||
now := p.clock.Now()
|
||||
|
||||
state := &model.CardPayout{
|
||||
Base: storable.Base{
|
||||
ID: bson.NilObjectID,
|
||||
},
|
||||
PayoutID: strings.TrimSpace(req.GetPayoutId()),
|
||||
OperationRef: strings.TrimSpace(req.GetOperationRef()),
|
||||
IdempotencyKey: strings.TrimSpace(req.GetIdempotencyKey()),
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
ri "github.com/tech/sendico/pkg/db/repository/index"
|
||||
"github.com/tech/sendico/pkg/merrors"
|
||||
"github.com/tech/sendico/pkg/mlogger"
|
||||
"go.mongodb.org/mongo-driver/v2/bson"
|
||||
"go.mongodb.org/mongo-driver/v2/mongo"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
@@ -81,7 +82,11 @@ func (p *Payouts) Upsert(ctx context.Context, record *model.CardPayout) error {
|
||||
return merrors.InvalidArgument("operation ref is required", "operation_ref")
|
||||
}
|
||||
|
||||
return p.repository.Insert(ctx, record, repository.Filter(payoutIdemField, record.IdempotencyKey))
|
||||
if record.ID == bson.NilObjectID {
|
||||
return p.repository.Insert(ctx, record, nil)
|
||||
}
|
||||
|
||||
return p.repository.Update(ctx, record)
|
||||
}
|
||||
|
||||
var _ storage.PayoutsStore = (*Payouts)(nil)
|
||||
|
||||
Reference in New Issue
Block a user