blockchain/internal/svc/service_context.go

45 lines
980 B
Go

package svc
import (
"blockchain/internal/config"
"blockchain/internal/domain/repository"
"blockchain/internal/domain/usecase"
repo "blockchain/internal/repository"
uc "blockchain/internal/usecase"
"github.com/zeromicro/go-zero/core/stores/redis"
)
type ServiceContext struct {
Config config.Config
BinanceDataSource usecase.DataSourceUseCase
BinanceRepo repository.DataSourceRepository
}
func NewServiceContext(c config.Config) *ServiceContext {
newRedis, err := redis.NewRedis(c.RedisCluster)
if err != nil {
panic(err)
}
cassandra, err := NewDB(c)
if err != nil {
return nil
}
binanceRepo := repo.MustBinanceRepository(repo.BinanceRepositoryParam{
Conf: &c.Binance,
Redis: newRedis,
DB: cassandra,
KeySpace: c.Cassandra.Keyspace,
})
return &ServiceContext{
Config: c,
BinanceRepo: binanceRepo,
BinanceDataSource: uc.MustBinanceUseCase(uc.BinanceUseCaseParam{
BinanceRepo: binanceRepo,
}),
}
}