You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.3 KiB
69 lines
1.3 KiB
package data
|
|
|
|
import (
|
|
"github.com/go-kratos/kratos/v2/log"
|
|
"github.com/google/wire"
|
|
"wallet-system/internal/conf"
|
|
"wallet-system/internal/data/tron"
|
|
"wallet-system/internal/pkg/aws/kms"
|
|
"wallet-system/internal/pkg/aws/s3"
|
|
"wallet-system/internal/pkg/leveldb"
|
|
"wallet-system/internal/pkg/wallet/tron/grpc"
|
|
|
|
kmsClient "wallet-system/internal/data/aws/kms"
|
|
s3Client "wallet-system/internal/data/aws/s3"
|
|
levelClient "wallet-system/internal/data/leveldb"
|
|
)
|
|
|
|
// ProviderSet is data providers.
|
|
var ProviderSet = wire.NewSet(
|
|
NewData,
|
|
NewWalletRepo,
|
|
s3Client.NewClientS3,
|
|
kmsClient.NewClientKms,
|
|
levelClient.NewLevelDB,
|
|
tron.NewTronGrpc)
|
|
|
|
// Data
|
|
// @Description:
|
|
type Data struct {
|
|
aws *conf.Aws
|
|
s3C *s3.S3Client
|
|
kmsC *kms.KmsClient
|
|
levelC *leveldb.LevelDB
|
|
grpcT *grpc.Client
|
|
}
|
|
|
|
// NewData
|
|
//
|
|
// @Description:
|
|
// @param c
|
|
// @param aws
|
|
// @param s3C
|
|
// @param kmsC
|
|
// @param levelC
|
|
// @param grpcT
|
|
// @param logger
|
|
// @return *Data
|
|
// @return func()
|
|
// @return error
|
|
func NewData(
|
|
c *conf.Data,
|
|
aws *conf.Aws,
|
|
s3C *s3.S3Client,
|
|
kmsC *kms.KmsClient,
|
|
levelC *leveldb.LevelDB,
|
|
grpcT *grpc.Client,
|
|
logger log.Logger) (*Data, func(), error) {
|
|
cleanup := func() {
|
|
log.NewHelper(logger).Info("closing the data resources")
|
|
}
|
|
return &Data{
|
|
aws: aws,
|
|
s3C: s3C,
|
|
kmsC: kmsC,
|
|
levelC: levelC,
|
|
grpcT: grpcT},
|
|
cleanup,
|
|
nil
|
|
}
|
|
|