backend/internal/svc/service_context.go

60 lines
1.6 KiB
Go
Raw Normal View History

2025-09-30 16:53:31 +00:00
package svc
import (
"backend/internal/config"
"backend/internal/middleware"
2025-11-04 09:47:36 +00:00
errs "backend/pkg/library/errors"
"backend/pkg/library/errors/code"
"context"
"github.com/zeromicro/go-zero/core/logx"
2025-10-02 16:16:33 +00:00
vi "backend/pkg/library/validator"
2025-10-06 08:28:39 +00:00
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"
2025-09-30 16:53:31 +00:00
)
type ServiceContext struct {
Config config.Config
AuthMiddleware rest.Middleware
2025-10-06 08:28:39 +00:00
AccountUC memberUC.AccountUseCase
2025-10-02 16:16:33 +00:00
Validate vi.Validate
2025-10-06 08:28:39 +00:00
TokenUC tokenUC.TokenUseCase
2025-10-22 13:40:31 +00:00
PermissionUC tokenUC.PermissionUseCase
RoleUC tokenUC.RoleUseCase
RolePermission tokenUC.RolePermissionUseCase
UserRoleUC tokenUC.UserRoleUseCase
Redis *redis.Redis
2025-11-04 09:47:36 +00:00
Logger errs.Logger
2025-09-30 16:53:31 +00:00
}
func NewServiceContext(c config.Config) *ServiceContext {
rds, err := redis.NewRedis(c.RedisConf)
if err != nil {
panic(err)
}
2025-11-04 09:47:36 +00:00
errs.Scope = code.Gateway
2025-10-22 13:40:31 +00:00
rp := NewPermissionUC(&c)
tkUC := NewTokenUC(&c, rds)
2025-09-30 16:53:31 +00:00
return &ServiceContext{
2025-10-22 13:40:31 +00:00
Config: c,
AuthMiddleware: middleware.NewAuthMiddleware(middleware.AuthMiddlewareParam{
TokenSec: c.Token.AccessSecret,
TokenUseCase: tkUC,
}).Handle,
AccountUC: NewAccountUC(&c, rds),
2025-10-02 16:16:33 +00:00
Validate: vi.MustValidator(),
2025-10-22 13:40:31 +00:00
TokenUC: tkUC,
PermissionUC: rp.PermissionUC,
RoleUC: rp.RoleUC,
RolePermission: rp.RolePermission,
UserRoleUC: rp.UserRole,
Redis: rds,
2025-11-04 09:47:36 +00:00
Logger: MustLogger(logx.WithContext(context.Background())),
2025-09-30 16:53:31 +00:00
}
}