app-cloudep-portal-api-gateway/internal/svc/service_context.go

44 lines
1.4 KiB
Go

package svc
import (
"app-cloudep-portal-api-gateway/internal/config"
"app-cloudep-portal-api-gateway/internal/middleware"
ers "code.30cm.net/digimon/library-go/errors"
"code.30cm.net/digimon/library-go/errors/code"
"github.com/zeromicro/go-zero/core/stores/redis"
"github.com/zeromicro/go-zero/zrpc"
accountRpc "code.30cm.net/digimon/proto-all/pkg/member"
notificationRpc "code.30cm.net/digimon/proto-all/pkg/notification"
permissionRpc "code.30cm.net/digimon/proto-all/pkg/permission"
)
type ServiceContext struct {
Config config.Config
AuthMiddleware *middleware.AuthMiddleware
AccountRpc accountRpc.AccountClient
TokenRpc permissionRpc.TokenServiceClient
NotificationRpc notificationRpc.SenderServiceClient
Redis redis.Redis
}
func NewServiceContext(c config.Config) *ServiceContext {
ers.Scope = code.CloudEPPortalGW
newRedis, err := redis.NewRedis(c.RedisCluster, redis.Cluster())
if err != nil {
panic(err)
}
return &ServiceContext{
Config: c,
AuthMiddleware: middleware.NewAuthMiddleware(),
AccountRpc: accountRpc.NewAccountClient(zrpc.MustNewClient(c.AccountRpc).Conn()),
TokenRpc: permissionRpc.NewTokenServiceClient(zrpc.MustNewClient(c.PermissionRpc).Conn()),
NotificationRpc: notificationRpc.NewSenderServiceClient(zrpc.MustNewClient(c.NotificationRpc).Conn()),
Redis: *newRedis,
}
}