44 lines
1007 B
Go
44 lines
1007 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,
|
|
})
|
|
InitBinanceKLineWebsocket()
|
|
return &ServiceContext{
|
|
Config: c,
|
|
BinanceRepo: binanceRepo,
|
|
BinanceDataSource: uc.MustBinanceUseCase(uc.BinanceUseCaseParam{
|
|
BinanceRepo: binanceRepo,
|
|
}),
|
|
}
|
|
}
|