app-cloudep-trade-service/internal/svc/service_context.go

47 lines
1008 B
Go

package svc
import (
"app-cloudep-trade-service/internal/config"
duc "app-cloudep-trade-service/internal/domain/usecase"
"app-cloudep-trade-service/internal/model"
"app-cloudep-trade-service/internal/usecase"
ers "code.30cm.net/digimon/library-go/errs"
"code.30cm.net/digimon/library-go/errs/code"
vi "code.30cm.net/digimon/library-go/validator"
)
type ServiceContext struct {
Config config.Config
Validate vi.Validate
OrderUseCase duc.OrderUseCase
WalletModel model.WalletModel
}
func NewServiceContext(c config.Config) *ServiceContext {
// TODO 改成 Trade
ers.Scope = code.CloudEPOrder
om := MustOrderModel(c)
orderUseCase := usecase.NewOrderUseCase(usecase.OrderUseCaseParam{
OrderModel: om,
})
mysql, err := newDatabase(c)
if err != nil {
panic("failed to connect to wallet")
}
return &ServiceContext{
Config: c,
Validate: vi.MustValidator(
WithDecimalGt(),
WithDecimalGte(),
),
OrderUseCase: orderUseCase,
WalletModel: MustWalletModel(mysql),
}
}