45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package svc
|
|
|
|
import (
|
|
"fusenapi/server/order/internal/config"
|
|
"fusenapi/utils/queue"
|
|
|
|
"fusenapi/initalize"
|
|
"fusenapi/model/gmodel"
|
|
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
"github.com/aws/aws-sdk-go/aws/credentials"
|
|
"github.com/aws/aws-sdk-go/aws/session"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type ServiceContext struct {
|
|
Config config.Config
|
|
|
|
MysqlConn *gorm.DB
|
|
AllModels *gmodel.AllModelsGen
|
|
Repositories *initalize.Repositories
|
|
DelayQueue *queue.DelayMessage
|
|
}
|
|
|
|
func NewServiceContext(c config.Config) *ServiceContext {
|
|
configAWS := aws.Config{
|
|
Credentials: credentials.NewStaticCredentials(c.AWS.S3.Credentials.AccessKeyID, c.AWS.S3.Credentials.Secret, c.AWS.S3.Credentials.Token),
|
|
}
|
|
conn := initalize.InitMysql(c.SourceMysql)
|
|
// delayQueue := initalize.InitDelayMessage()
|
|
repositories := initalize.NewAllRepositories(&initalize.NewAllRepositorieData{
|
|
GormDB: conn,
|
|
AwsSession: session.Must(session.NewSession(&configAWS)),
|
|
// DelayQueue: delayQueue,
|
|
})
|
|
|
|
return &ServiceContext{
|
|
Config: c,
|
|
MysqlConn: conn,
|
|
AllModels: gmodel.NewAllModels(conn),
|
|
Repositories: repositories,
|
|
// DelayQueue: delayQueue,
|
|
}
|
|
}
|