Try to use generated yookassa client (unsuccessful)

This commit is contained in:
2026-03-17 16:37:29 +03:00
parent 35f6dc6ca0
commit 2c19b9c29b
14 changed files with 867 additions and 698 deletions

View File

@@ -9,6 +9,7 @@ import (
"net/http"
"regexp"
"github.com/google/uuid"
"go.uber.org/fx"
"payouts/internal/config"
@@ -124,13 +125,26 @@ func (p *payoutHandler) PayoutCreate(w http.ResponseWriter, r *http.Request) {
return
}
idempotenceKey := uuid.New().String()
payoutModel := &orm.Payout{
User: *userSession,
IdempotenceKey: idempotenceKey,
Type: payoutReq.PayoutType.String(),
Amount: payoutReq.Amount,
Status: orm.StatusCreated,
}
err = p.dbService.CreatePayout(payoutModel, database.WithContext(r.Context()))
slog.Debug(fmt.Sprintf("Received create payload request: %v from user %v", payoutReq, userSession))
err = p.yooKassa.CreatePayout(payoutReq, userSession)
payoutResp, err := p.yooKassa.CreatePayout(payoutReq, userSession, idempotenceKey, yookassa.WithContext(r.Context()))
if err != nil {
slog.Error("Failed to create payout request", slog.String("error", err.Error()))
errResponse("failed to create payout request", err, http.StatusBadRequest)
return
}
encoder := json.NewEncoder(w)
encoder.Encode(payoutResp)
}
// PaymentCallback implements [Handler].

View File

@@ -82,7 +82,7 @@ func (u *userHandler) UserRegister(w http.ResponseWriter, r *http.Request) {
copier.Copy(&ormUser, user)
// todo: add data validation
err = u.dbService.CreateUser(ormUser, database.WithContext(r.Context()))
err = u.dbService.CreateUser(&ormUser, database.WithContext(r.Context()))
if err != nil {
slog.Error("Failed to create user", slog.String("error", err.Error()))
errResponse("failed to create user", err, http.StatusBadRequest)
@@ -114,7 +114,7 @@ func (u *userHandler) UserLogin(w http.ResponseWriter, r *http.Request) {
return
}
ormUser, err := u.dbService.GetUser(orm.User{Phone: user.Phone}, database.WithContext(r.Context()))
ormUser, err := u.dbService.GetUser(&orm.User{Phone: user.Phone}, database.WithContext(r.Context()))
if err != nil {
errResponse("invalid credentials", nil, http.StatusUnauthorized)
return