41 lines
596 B
Go
41 lines
596 B
Go
package yookassa
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go.uber.org/fx"
|
|
|
|
"payouts/internal/config"
|
|
"payouts/internal/models"
|
|
"payouts/internal/service/database/orm"
|
|
)
|
|
|
|
var Module = fx.Options(
|
|
fx.Provide(New),
|
|
)
|
|
|
|
type params struct {
|
|
ctx context.Context
|
|
}
|
|
type Optional func(*params)
|
|
|
|
func WithContext(ctx context.Context) Optional {
|
|
return func(p *params) {
|
|
p.ctx = ctx
|
|
}
|
|
}
|
|
|
|
type Service interface {
|
|
CreatePayout(models.PayoutReq, *orm.User, ...Optional)
|
|
}
|
|
|
|
type Param struct {
|
|
fx.In
|
|
|
|
AppConfig *config.App
|
|
}
|
|
|
|
func New(p Param) (Service, error) {
|
|
return NewYookassaService(p.AppConfig.YooKassa)
|
|
}
|