60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
package svc
|
|
|
|
import (
|
|
"backend/internal/config"
|
|
"backend/internal/middleware"
|
|
errs "backend/pkg/library/errors"
|
|
"backend/pkg/library/errors/code"
|
|
"context"
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
|
|
vi "backend/pkg/library/validator"
|
|
memberUC "backend/pkg/member/domain/usecase"
|
|
tokenUC "backend/pkg/permission/domain/usecase"
|
|
|
|
"github.com/zeromicro/go-zero/core/stores/redis"
|
|
"github.com/zeromicro/go-zero/rest"
|
|
)
|
|
|
|
type ServiceContext struct {
|
|
Config config.Config
|
|
AuthMiddleware rest.Middleware
|
|
AccountUC memberUC.AccountUseCase
|
|
Validate vi.Validate
|
|
TokenUC tokenUC.TokenUseCase
|
|
PermissionUC tokenUC.PermissionUseCase
|
|
RoleUC tokenUC.RoleUseCase
|
|
RolePermission tokenUC.RolePermissionUseCase
|
|
UserRoleUC tokenUC.UserRoleUseCase
|
|
Redis *redis.Redis
|
|
Logger errs.Logger
|
|
}
|
|
|
|
func NewServiceContext(c config.Config) *ServiceContext {
|
|
rds, err := redis.NewRedis(c.RedisConf)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
errs.Scope = code.Gateway
|
|
|
|
rp := NewPermissionUC(&c)
|
|
tkUC := NewTokenUC(&c, rds)
|
|
|
|
return &ServiceContext{
|
|
Config: c,
|
|
AuthMiddleware: middleware.NewAuthMiddleware(middleware.AuthMiddlewareParam{
|
|
TokenSec: c.Token.AccessSecret,
|
|
TokenUseCase: tkUC,
|
|
}).Handle,
|
|
AccountUC: NewAccountUC(&c, rds),
|
|
Validate: vi.MustValidator(),
|
|
TokenUC: tkUC,
|
|
PermissionUC: rp.PermissionUC,
|
|
RoleUC: rp.RoleUC,
|
|
RolePermission: rp.RolePermission,
|
|
UserRoleUC: rp.UserRole,
|
|
Redis: rds,
|
|
Logger: MustLogger(logx.WithContext(context.Background())),
|
|
}
|
|
}
|