Try to use generated yookassa client (unsuccessful)
This commit is contained in:
@@ -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")
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user