From f0d3d0c9cdf1bd11eeb724cc264f8995f0e98fd5 Mon Sep 17 00:00:00 2001 From: Pasha Date: Tue, 22 Jul 2025 14:28:27 +0300 Subject: [PATCH] somme upd --- internal/payment_provider/alchemy/provider.go | 9 +++++---- internal/repository/payment.go | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/payment_provider/alchemy/provider.go b/internal/payment_provider/alchemy/provider.go index 802933c..919f946 100644 --- a/internal/payment_provider/alchemy/provider.go +++ b/internal/payment_provider/alchemy/provider.go @@ -8,6 +8,7 @@ import ( "gitea.pena/PenaSide/treasurer/internal/models/alchemy" "gitea.pena/PenaSide/treasurer/internal/repository" "github.com/gofiber/fiber/v2" + "github.com/google/uuid" "go.uber.org/zap" "strconv" "strings" @@ -63,13 +64,12 @@ func (p *Provider) CreateInvoice(ctx context.Context, req map[string]string) (st now := time.Now() payment := &models.Payment{ + PaymentID: uuid.NewString(), UserID: req["user_id"], ClientIP: req["client_ip"], Currency: req["currency"], - Type: models.PaymentType(req["type"]), + Type: models.PaymentTypeAlchemy, Status: models.PaymentStatusWaiting, - Completed: false, - IsDeleted: false, CreatedAt: now, UpdatedAt: now, ToWalletAddress: p.config.WalletAddress, @@ -106,6 +106,7 @@ func (p *Provider) handleWebhook(ctx *fiber.Ctx) error { if act.ToAddress != p.config.WalletAddress { continue } + // todo нужно подумать как сделать так если сумма оплаты оказалась чуть больше ожидаемой... payment, err := p.repository.FindByWalletsAndAmount(ctx.Context(), act.ToAddress, act.FromAddress, act.Value) if err != nil { if err.Type() == errors.ErrNotFound { @@ -113,7 +114,7 @@ func (p *Provider) handleWebhook(ctx *fiber.Ctx) error { } return ctx.Status(fiber.StatusInternalServerError).SendString(fmt.Sprintf("internal error while searching payment: %s", err.Error())) } - _, err = p.repository.SetPaymentComplete(ctx.Context(), payment.PaymentID) + _, err = p.repository.SetPaymentStatus(ctx.Context(), payment.PaymentID, models.PaymentStatusSuccessfully) if err != nil { return ctx.Status(fiber.StatusInternalServerError).SendString(fmt.Sprintf("failed to set payment complete: %s", err.Error())) } diff --git a/internal/repository/payment.go b/internal/repository/payment.go index eee0907..a9fe888 100644 --- a/internal/repository/payment.go +++ b/internal/repository/payment.go @@ -173,7 +173,6 @@ func (r *PaymentRepository) FindByWalletsAndAmount(ctx context.Context, toWallet PaymentFields.ToWalletAddress: toWalletAddress, PaymentFields.FromWalletAddress: fromWalletAddress, PaymentFields.CryptoAmount: cryptoAmount, - PaymentFields.Completed: false, PaymentFields.Status: models.PaymentStatusWaiting, } if err := r.collection.FindOne(ctx, filter).Decode(&payment); err != nil {