feat: 更新路由绑定,使用模型作为参数以简化控制器逻辑
Some checks failed
build quyun / Build (push) Failing after 10s

This commit is contained in:
2025-12-19 23:53:15 +08:00
parent 7b18a6a0e6
commit df6a8de61d
7 changed files with 96 additions and 113 deletions

View File

@@ -5,8 +5,10 @@
package admin
import (
"go.ipao.vip/gen/field"
"quyun/v2/app/middlewares"
"quyun/v2/app/requests"
"quyun/v2/database/models"
"github.com/gofiber/fiber/v3"
log "github.com/sirupsen/logrus"
@@ -57,7 +59,10 @@ func (r *Routes) Register(router fiber.Router) {
r.log.Debugf("Registering route: Delete /admin/medias/:id -> medias.Delete")
router.Delete("/admin/medias/:id"[len(r.Path()):], Func1(
r.medias.Delete,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.Media, error) {
v := fiber.Params[int](ctx, "id")
return models.MediaQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
))
r.log.Debugf("Registering route: Get /admin/medias -> medias.List")
router.Get("/admin/medias"[len(r.Path()):], DataFunc2(
@@ -68,7 +73,10 @@ func (r *Routes) Register(router fiber.Router) {
r.log.Debugf("Registering route: Get /admin/medias/:id -> medias.Show")
router.Get("/admin/medias/:id"[len(r.Path()):], Func1(
r.medias.Show,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.Media, error) {
v := fiber.Params[int](ctx, "id")
return models.MediaQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
))
// Register routes for controller: orders
r.log.Debugf("Registering route: Get /admin/orders -> orders.List")
@@ -80,13 +88,19 @@ func (r *Routes) Register(router fiber.Router) {
r.log.Debugf("Registering route: Post /admin/orders/:id/refund -> orders.Refund")
router.Post("/admin/orders/:id/refund"[len(r.Path()):], Func1(
r.orders.Refund,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.Order, error) {
v := fiber.Params[int](ctx, "id")
return models.OrderQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
))
// Register routes for controller: posts
r.log.Debugf("Registering route: Delete /admin/posts/:id -> posts.Delete")
router.Delete("/admin/posts/:id"[len(r.Path()):], Func1(
r.posts.Delete,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.Post, error) {
v := fiber.Params[int](ctx, "id")
return models.PostQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
))
r.log.Debugf("Registering route: Get /admin/posts -> posts.List")
router.Get("/admin/posts"[len(r.Path()):], DataFunc2(
@@ -97,7 +111,10 @@ func (r *Routes) Register(router fiber.Router) {
r.log.Debugf("Registering route: Get /admin/posts/:id -> posts.Show")
router.Get("/admin/posts/:id"[len(r.Path()):], DataFunc1(
r.posts.Show,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.Post, error) {
v := fiber.Params[int](ctx, "id")
return models.PostQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
))
r.log.Debugf("Registering route: Post /admin/posts -> posts.Create")
router.Post("/admin/posts"[len(r.Path()):], Func1(
@@ -107,13 +124,22 @@ func (r *Routes) Register(router fiber.Router) {
r.log.Debugf("Registering route: Post /admin/posts/:id/send-to/:userId -> posts.SendTo")
router.Post("/admin/posts/:id/send-to/:userId"[len(r.Path()):], Func2(
r.posts.SendTo,
PathParam[int64]("id"),
PathParam[int64]("userId"),
func(ctx fiber.Ctx) (*models.Post, error) {
v := fiber.Params[int](ctx, "id")
return models.PostQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
func(ctx fiber.Ctx) (*models.User, error) {
v := fiber.Params[int](ctx, "userId")
return models.UserQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
))
r.log.Debugf("Registering route: Put /admin/posts/:id -> posts.Update")
router.Put("/admin/posts/:id"[len(r.Path()):], Func2(
r.posts.Update,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.Post, error) {
v := fiber.Params[int](ctx, "id")
return models.PostQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
Body[PostForm]("form"),
))
// Register routes for controller: statistics
@@ -144,18 +170,27 @@ func (r *Routes) Register(router fiber.Router) {
r.log.Debugf("Registering route: Get /admin/users/:id -> users.Show")
router.Get("/admin/users/:id"[len(r.Path()):], DataFunc1(
r.users.Show,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.User, error) {
v := fiber.Params[int](ctx, "id")
return models.UserQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
))
r.log.Debugf("Registering route: Get /admin/users/:id/articles -> users.Articles")
router.Get("/admin/users/:id/articles"[len(r.Path()):], DataFunc2(
r.users.Articles,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.User, error) {
v := fiber.Params[int](ctx, "id")
return models.UserQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
Query[requests.Pagination]("pagination"),
))
r.log.Debugf("Registering route: Post /admin/users/:id/balance -> users.Balance")
router.Post("/admin/users/:id/balance"[len(r.Path()):], Func2(
r.users.Balance,
PathParam[int64]("id"),
func(ctx fiber.Ctx) (*models.User, error) {
v := fiber.Params[int](ctx, "id")
return models.UserQuery.WithContext(ctx).Where(field.NewUnsafeFieldRaw("id = ?", v)).First()
},
Body[UserBalance]("balance"),
))