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

@@ -73,16 +73,33 @@ func (d *dbService) getParams(options ...Optional) *params {
}
// AddUser implements [Service].
func (d *dbService) CreateUser(userModel orm.User, opts ...Optional) error {
func (d *dbService) CreateUser(userModel *orm.User, opts ...Optional) error {
p := d.getParams(opts...)
return gorm.G[orm.User](d.db).Create(p.ctx, &userModel)
return gorm.G[orm.User](d.db).Create(p.ctx, userModel)
}
// GetUser implements [Service].
func (d *dbService) GetUser(userModel orm.User, opts ...Optional) (orm.User, error) {
func (d *dbService) GetUser(userModel *orm.User, opts ...Optional) (orm.User, error) {
p := d.getParams(opts...)
return gorm.G[orm.User](d.db).Where(userModel).First(p.ctx)
}
// GetPayout implements [Service].
func (d *dbService) GetPayout(payoutModel *orm.Payout, opts ...Optional) (orm.Payout, error) {
p := d.getParams(opts...)
return gorm.G[orm.Payout](d.db).Where(payoutModel).First(p.ctx)
}
// CreatePayout implements [Service].
func (d *dbService) CreatePayout(payoutModel *orm.Payout, opts ...Optional) error {
p := d.getParams(opts...)
userResp, err := gorm.G[orm.User](d.db).Where(&userModel).First(p.ctx)
return userResp, err
return gorm.G[orm.Payout](d.db).Create(p.ctx, payoutModel)
}
// UpdatePayout implements [Service].
func (d *dbService) UpdatePayout(payoutModel *orm.Payout, opts ...Optional) error {
// p := d.getParams(opts...)
panic("unimplemented")
}

View File

@@ -25,8 +25,11 @@ func WithContext(ctx context.Context) Optional {
}
type Service interface {
CreateUser(user orm.User, opts ...Optional) error
GetUser(user orm.User, opts ...Optional) (orm.User, error)
CreateUser(user *orm.User, opts ...Optional) error
GetUser(user *orm.User, opts ...Optional) (orm.User, error)
GetPayout(payoutModel *orm.Payout, opts ...Optional) (orm.Payout, error)
CreatePayout(payoutModel *orm.Payout, opts ...Optional) error
UpdatePayout(payoutModel *orm.Payout, opts ...Optional) error
}
// Params represents the module input params

View File

@@ -1,6 +1,60 @@
package orm
import "gorm.io/gorm"
import (
"fmt"
"strings"
"gorm.io/gorm"
)
type PayoutStatus int64
const (
StatusCreated PayoutStatus = iota
StatusCanceled
StatusPending
StatusSucceeded
StatusFailed
)
func (r PayoutStatus) String() string {
switch r {
case StatusCreated:
return "created"
case StatusCanceled:
return "canceled"
case StatusPending:
return "pending"
case StatusSucceeded:
return "succeeded"
case StatusFailed:
return "failed"
}
return "unknown"
}
func (r PayoutStatus) MarshalText() (text []byte, err error) {
return []byte(r.String()), nil
}
func (r *PayoutStatus) UnmarshalText(text []byte) (err error) {
s := strings.ToLower(string(text))
switch s {
case "canceled":
*r = StatusCanceled
case "created":
*r = StatusCreated
case "pending":
*r = StatusPending
case "succeeded":
*r = StatusSucceeded
case "failed":
*r = StatusFailed
default:
err = fmt.Errorf("invalid payment type: %s", s)
}
return err
}
type Payout struct {
gorm.Model
@@ -8,12 +62,13 @@ type Payout struct {
UserID uint
User User
Description string
PayoutID string
Type string
AccountNumber string
Amount float32
Currency string
Status string
Test bool
Description string
IdempotenceKey string
PayoutID string
Type string
AccountNumber string
Amount float32
Currency string
Status PayoutStatus
Test bool
}