feat: done

This commit is contained in:
2025-12-18 00:21:49 +08:00
parent 7261c0fcc3
commit bfce71b56d
15 changed files with 331 additions and 17 deletions

View File

@@ -50,3 +50,22 @@ func (ctl *auth) login(ctx fiber.Ctx, form *dto.LoginForm) (*dto.LoginResponse,
return &dto.LoginResponse{Token: token}, nil
}
// Token
//
// @Tags Super
// @Accept json
// @Produce json
// @Success 200 {object} dto.LoginResponse "成功"
//
// @Router /super/v1/auth/token [get]
func (ctl *auth) token(ctx fiber.Ctx) (*dto.LoginResponse, error) {
token, err := ctl.jwt.CreateToken(ctl.jwt.CreateClaims(jwt.BaseClaims{
UserID: 2,
}))
if err != nil {
return nil, errorx.Wrap(err).WithMsg("登录凭证生成失败")
}
return &dto.LoginResponse{Token: token}, nil
}

View File

@@ -1,6 +1,7 @@
package super
import (
"quyun/v2/app/middlewares"
"quyun/v2/providers/app"
"quyun/v2/providers/jwt"
@@ -26,13 +27,15 @@ func Provide(opts ...opt.Option) error {
}
if err := container.Container.Provide(func(
auth *auth,
middlewares *middlewares.Middlewares,
tenant *tenant,
user *user,
) (contracts.HttpRoute, error) {
obj := &Routes{
auth: auth,
tenant: tenant,
user: user,
auth: auth,
middlewares: middlewares,
tenant: tenant,
user: user,
}
if err := obj.Prepare(); err != nil {
return nil, err

View File

@@ -5,12 +5,14 @@
package super
import (
"quyun/v2/app/http/super/dto"
"quyun/v2/app/middlewares"
"github.com/gofiber/fiber/v3"
log "github.com/sirupsen/logrus"
_ "go.ipao.vip/atom"
_ "go.ipao.vip/atom/contracts"
. "go.ipao.vip/atom/fen"
"quyun/v2/app/http/super/dto"
)
// Routes implements the HttpRoute contract and provides route registration
@@ -18,7 +20,8 @@ import (
//
// @provider contracts.HttpRoute atom.GroupRoutes
type Routes struct {
log *log.Entry `inject:"false"`
log *log.Entry `inject:"false"`
middlewares *middlewares.Middlewares
// Controller instances
auth *auth
tenant *tenant
@@ -41,49 +44,53 @@ func (r *Routes) Name() string {
// Each route is registered with its corresponding controller action and parameter bindings.
func (r *Routes) Register(router fiber.Router) {
// Register routes for controller: auth
r.log.Debugf("Registering route: Get /super/v1/auth/token -> auth.token")
router.Get("/super/v1/auth/token"[len(r.Path()):], DataFunc0(
r.auth.token,
))
r.log.Debugf("Registering route: Post /super/v1/auth/login -> auth.login")
router.Post("/super/v1/auth/login", DataFunc1(
router.Post("/super/v1/auth/login"[len(r.Path()):], DataFunc1(
r.auth.login,
Body[dto.LoginForm]("form"),
))
// Register routes for controller: tenant
r.log.Debugf("Registering route: Get /super/v1/tenants -> tenant.list")
router.Get("/super/v1/tenants", DataFunc1(
router.Get("/super/v1/tenants"[len(r.Path()):], DataFunc1(
r.tenant.list,
Query[dto.TenantFilter]("filter"),
))
r.log.Debugf("Registering route: Get /super/v1/tenants/statuses -> tenant.statusList")
router.Get("/super/v1/tenants/statuses", DataFunc0(
router.Get("/super/v1/tenants/statuses"[len(r.Path()):], DataFunc0(
r.tenant.statusList,
))
r.log.Debugf("Registering route: Patch /super/v1/tenants/:tenantID -> tenant.updateExpire")
router.Patch("/super/v1/tenants/:tenantID", Func2(
router.Patch("/super/v1/tenants/:tenantID"[len(r.Path()):], Func2(
r.tenant.updateExpire,
PathParam[int64]("tenantID"),
Body[dto.TenantExpireUpdateForm]("form"),
))
r.log.Debugf("Registering route: Patch /super/v1/tenants/:tenantID/status -> tenant.updateStatus")
router.Patch("/super/v1/tenants/:tenantID/status", Func2(
router.Patch("/super/v1/tenants/:tenantID/status"[len(r.Path()):], Func2(
r.tenant.updateStatus,
PathParam[int64]("tenantID"),
Body[dto.TenantStatusUpdateForm]("form"),
))
// Register routes for controller: user
r.log.Debugf("Registering route: Get /super/v1/users -> user.list")
router.Get("/super/v1/users", DataFunc1(
router.Get("/super/v1/users"[len(r.Path()):], DataFunc1(
r.user.list,
Query[dto.UserPageFilter]("filter"),
))
r.log.Debugf("Registering route: Get /super/v1/users/statistics -> user.statistics")
router.Get("/super/v1/users/statistics", DataFunc0(
router.Get("/super/v1/users/statistics"[len(r.Path()):], DataFunc0(
r.user.statistics,
))
r.log.Debugf("Registering route: Get /super/v1/users/statuses -> user.statusList")
router.Get("/super/v1/users/statuses", DataFunc0(
router.Get("/super/v1/users/statuses"[len(r.Path()):], DataFunc0(
r.user.statusList,
))
r.log.Debugf("Registering route: Patch /super/v1/users/:userID/status -> user.updateStatus")
router.Patch("/super/v1/users/:userID/status", Func2(
router.Patch("/super/v1/users/:userID/status"[len(r.Path()):], Func2(
r.user.updateStatus,
PathParam[int64]("userID"),
Body[dto.UserStatusUpdateForm]("form"),

View File

@@ -0,0 +1,9 @@
package super
func (r *Routes) Path() string {
return "/super"
}
func (r *Routes) Middlewares() []any {
return []any{}
}