- Updated middleware to fetch user and tenant models by ID and set them in context. - Refactored common service methods to accept userID as a parameter instead of extracting from context. - Modified content service methods to include userID as a parameter for better clarity and performance. - Adjusted coupon, creator, notification, order, tenant, user, and wallet services to utilize userID directly. - Enhanced context key constants for improved readability and maintainability.
299 lines
11 KiB
Go
299 lines
11 KiB
Go
// Code generated by atomctl. DO NOT EDIT.
|
|
|
|
// Package v1 provides HTTP route definitions and registration
|
|
// for the quyun/v2 application.
|
|
package v1
|
|
|
|
import (
|
|
"mime/multipart"
|
|
"quyun/v2/app/http/v1/dto"
|
|
"quyun/v2/app/middlewares"
|
|
"quyun/v2/database/models"
|
|
|
|
"github.com/gofiber/fiber/v3"
|
|
log "github.com/sirupsen/logrus"
|
|
_ "go.ipao.vip/atom"
|
|
_ "go.ipao.vip/atom/contracts"
|
|
. "go.ipao.vip/atom/fen"
|
|
)
|
|
|
|
// Routes implements the HttpRoute contract and provides route registration
|
|
// for all controllers in the v1 module.
|
|
//
|
|
// @provider contracts.HttpRoute atom.GroupRoutes
|
|
type Routes struct {
|
|
log *log.Entry `inject:"false"`
|
|
middlewares *middlewares.Middlewares
|
|
// Controller instances
|
|
common *Common
|
|
content *Content
|
|
creator *Creator
|
|
storage *Storage
|
|
tenant *Tenant
|
|
transaction *Transaction
|
|
user *User
|
|
}
|
|
|
|
// Prepare initializes the routes provider with logging configuration.
|
|
func (r *Routes) Prepare() error {
|
|
r.log = log.WithField("module", "routes.v1")
|
|
r.log.Info("Initializing routes module")
|
|
return nil
|
|
}
|
|
|
|
// Name returns the unique identifier for this routes provider.
|
|
func (r *Routes) Name() string {
|
|
return "v1"
|
|
}
|
|
|
|
// Register registers all HTTP routes with the provided fiber router.
|
|
// Each route is registered with its corresponding controller action and parameter bindings.
|
|
func (r *Routes) Register(router fiber.Router) {
|
|
// Register routes for controller: Common
|
|
r.log.Debugf("Registering route: Post /v1/upload -> common.Upload")
|
|
router.Post("/v1/upload"[len(r.Path()):], DataFunc2(
|
|
r.common.Upload,
|
|
File[multipart.FileHeader]("file"),
|
|
Body[string]("type"),
|
|
))
|
|
// Register routes for controller: Content
|
|
r.log.Debugf("Registering route: Get /v1/contents -> content.List")
|
|
router.Get("/v1/contents"[len(r.Path()):], DataFunc1(
|
|
r.content.List,
|
|
Query[dto.ContentListFilter]("filter"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/contents/:id -> content.Get")
|
|
router.Get("/v1/contents/:id"[len(r.Path()):], DataFunc1(
|
|
r.content.Get,
|
|
PathParam[string]("id"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/contents/:id/comments -> content.ListComments")
|
|
router.Get("/v1/contents/:id/comments"[len(r.Path()):], DataFunc2(
|
|
r.content.ListComments,
|
|
PathParam[string]("id"),
|
|
QueryParam[int]("page"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/topics -> content.ListTopics")
|
|
router.Get("/v1/topics"[len(r.Path()):], DataFunc0(
|
|
r.content.ListTopics,
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/comments/:id/like -> content.LikeComment")
|
|
router.Post("/v1/comments/:id/like"[len(r.Path()):], Func1(
|
|
r.content.LikeComment,
|
|
PathParam[string]("id"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/contents/:id/comments -> content.CreateComment")
|
|
router.Post("/v1/contents/:id/comments"[len(r.Path()):], Func2(
|
|
r.content.CreateComment,
|
|
PathParam[string]("id"),
|
|
Body[dto.CommentCreateForm]("form"),
|
|
))
|
|
// Register routes for controller: Creator
|
|
r.log.Debugf("Registering route: Delete /v1/creator/contents/:id -> creator.DeleteContent")
|
|
router.Delete("/v1/creator/contents/:id"[len(r.Path()):], Func1(
|
|
r.creator.DeleteContent,
|
|
PathParam[string]("id"),
|
|
))
|
|
r.log.Debugf("Registering route: Delete /v1/creator/payout-accounts -> creator.RemovePayoutAccount")
|
|
router.Delete("/v1/creator/payout-accounts"[len(r.Path()):], Func1(
|
|
r.creator.RemovePayoutAccount,
|
|
QueryParam[string]("id"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/creator/contents -> creator.ListContents")
|
|
router.Get("/v1/creator/contents"[len(r.Path()):], DataFunc1(
|
|
r.creator.ListContents,
|
|
Query[dto.CreatorContentListFilter]("filter"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/creator/dashboard -> creator.Dashboard")
|
|
router.Get("/v1/creator/dashboard"[len(r.Path()):], DataFunc0(
|
|
r.creator.Dashboard,
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/creator/orders -> creator.ListOrders")
|
|
router.Get("/v1/creator/orders"[len(r.Path()):], DataFunc1(
|
|
r.creator.ListOrders,
|
|
Query[dto.CreatorOrderListFilter]("filter"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/creator/payout-accounts -> creator.ListPayoutAccounts")
|
|
router.Get("/v1/creator/payout-accounts"[len(r.Path()):], DataFunc0(
|
|
r.creator.ListPayoutAccounts,
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/creator/settings -> creator.GetSettings")
|
|
router.Get("/v1/creator/settings"[len(r.Path()):], DataFunc0(
|
|
r.creator.GetSettings,
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/creator/apply -> creator.Apply")
|
|
router.Post("/v1/creator/apply"[len(r.Path()):], Func1(
|
|
r.creator.Apply,
|
|
Body[dto.ApplyForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/creator/contents -> creator.CreateContent")
|
|
router.Post("/v1/creator/contents"[len(r.Path()):], Func1(
|
|
r.creator.CreateContent,
|
|
Body[dto.ContentCreateForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/creator/orders/:id/refund -> creator.Refund")
|
|
router.Post("/v1/creator/orders/:id/refund"[len(r.Path()):], Func2(
|
|
r.creator.Refund,
|
|
PathParam[string]("id"),
|
|
Body[dto.RefundForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/creator/payout-accounts -> creator.AddPayoutAccount")
|
|
router.Post("/v1/creator/payout-accounts"[len(r.Path()):], Func1(
|
|
r.creator.AddPayoutAccount,
|
|
Body[dto.PayoutAccount]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/creator/withdraw -> creator.Withdraw")
|
|
router.Post("/v1/creator/withdraw"[len(r.Path()):], Func1(
|
|
r.creator.Withdraw,
|
|
Body[dto.WithdrawForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Put /v1/creator/contents/:id -> creator.UpdateContent")
|
|
router.Put("/v1/creator/contents/:id"[len(r.Path()):], Func2(
|
|
r.creator.UpdateContent,
|
|
PathParam[string]("id"),
|
|
Body[dto.ContentUpdateForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Put /v1/creator/settings -> creator.UpdateSettings")
|
|
router.Put("/v1/creator/settings"[len(r.Path()):], Func1(
|
|
r.creator.UpdateSettings,
|
|
Body[dto.Settings]("form"),
|
|
))
|
|
// Register routes for controller: Storage
|
|
r.log.Debugf("Registering route: Get /v1/storage/:key -> storage.Download")
|
|
router.Get("/v1/storage/:key"[len(r.Path()):], Func3(
|
|
r.storage.Download,
|
|
PathParam[string]("key"),
|
|
QueryParam[string]("expires"),
|
|
QueryParam[string]("sign"),
|
|
))
|
|
r.log.Debugf("Registering route: Put /v1/storage/:key -> storage.Upload")
|
|
router.Put("/v1/storage/:key"[len(r.Path()):], DataFunc3(
|
|
r.storage.Upload,
|
|
PathParam[string]("key"),
|
|
QueryParam[string]("expires"),
|
|
QueryParam[string]("sign"),
|
|
))
|
|
// Register routes for controller: Tenant
|
|
r.log.Debugf("Registering route: Delete /v1/tenants/:id/follow -> tenant.Unfollow")
|
|
router.Delete("/v1/tenants/:id/follow"[len(r.Path()):], Func1(
|
|
r.tenant.Unfollow,
|
|
PathParam[string]("id"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/tenants/:id -> tenant.Get")
|
|
router.Get("/v1/tenants/:id"[len(r.Path()):], DataFunc1(
|
|
r.tenant.Get,
|
|
PathParam[string]("id"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/tenants/:id/follow -> tenant.Follow")
|
|
router.Post("/v1/tenants/:id/follow"[len(r.Path()):], Func1(
|
|
r.tenant.Follow,
|
|
PathParam[string]("id"),
|
|
))
|
|
// Register routes for controller: Transaction
|
|
r.log.Debugf("Registering route: Get /v1/orders/:id/status -> transaction.Status")
|
|
router.Get("/v1/orders/:id/status"[len(r.Path()):], DataFunc1(
|
|
r.transaction.Status,
|
|
PathParam[string]("id"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/orders -> transaction.Create")
|
|
router.Post("/v1/orders"[len(r.Path()):], DataFunc1(
|
|
r.transaction.Create,
|
|
Body[dto.OrderCreateForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/orders/:id/pay -> transaction.Pay")
|
|
router.Post("/v1/orders/:id/pay"[len(r.Path()):], DataFunc2(
|
|
r.transaction.Pay,
|
|
PathParam[string]("id"),
|
|
Body[dto.OrderPayForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/webhook/payment/notify -> transaction.Webhook")
|
|
router.Post("/v1/webhook/payment/notify"[len(r.Path()):], DataFunc1(
|
|
r.transaction.Webhook,
|
|
Body[WebhookForm]("form"),
|
|
))
|
|
// Register routes for controller: User
|
|
r.log.Debugf("Registering route: Delete /v1/me/favorites/:contentId -> user.RemoveFavorite")
|
|
router.Delete("/v1/me/favorites/:contentId"[len(r.Path()):], Func1(
|
|
r.user.RemoveFavorite,
|
|
PathParam[string]("contentId"),
|
|
))
|
|
r.log.Debugf("Registering route: Delete /v1/me/likes/:contentId -> user.RemoveLike")
|
|
router.Delete("/v1/me/likes/:contentId"[len(r.Path()):], Func1(
|
|
r.user.RemoveLike,
|
|
PathParam[string]("contentId"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me -> user.Me")
|
|
router.Get("/v1/me"[len(r.Path()):], DataFunc1(
|
|
r.user.Me,
|
|
Local[*models.User]("__ctx_user"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/coupons -> user.MyCoupons")
|
|
router.Get("/v1/me/coupons"[len(r.Path()):], DataFunc1(
|
|
r.user.MyCoupons,
|
|
QueryParam[string]("status"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/favorites -> user.Favorites")
|
|
router.Get("/v1/me/favorites"[len(r.Path()):], DataFunc0(
|
|
r.user.Favorites,
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/following -> user.Following")
|
|
router.Get("/v1/me/following"[len(r.Path()):], DataFunc0(
|
|
r.user.Following,
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/library -> user.Library")
|
|
router.Get("/v1/me/library"[len(r.Path()):], DataFunc0(
|
|
r.user.Library,
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/likes -> user.Likes")
|
|
router.Get("/v1/me/likes"[len(r.Path()):], DataFunc0(
|
|
r.user.Likes,
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/notifications -> user.Notifications")
|
|
router.Get("/v1/me/notifications"[len(r.Path()):], DataFunc2(
|
|
r.user.Notifications,
|
|
QueryParam[string]("type"),
|
|
QueryParam[int]("page"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/orders -> user.ListOrders")
|
|
router.Get("/v1/me/orders"[len(r.Path()):], DataFunc1(
|
|
r.user.ListOrders,
|
|
QueryParam[string]("status"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/orders/:id -> user.GetOrder")
|
|
router.Get("/v1/me/orders/:id"[len(r.Path()):], DataFunc1(
|
|
r.user.GetOrder,
|
|
PathParam[string]("id"),
|
|
))
|
|
r.log.Debugf("Registering route: Get /v1/me/wallet -> user.Wallet")
|
|
router.Get("/v1/me/wallet"[len(r.Path()):], DataFunc0(
|
|
r.user.Wallet,
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/me/favorites -> user.AddFavorite")
|
|
router.Post("/v1/me/favorites"[len(r.Path()):], Func1(
|
|
r.user.AddFavorite,
|
|
QueryParam[string]("contentId"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/me/likes -> user.AddLike")
|
|
router.Post("/v1/me/likes"[len(r.Path()):], Func1(
|
|
r.user.AddLike,
|
|
QueryParam[string]("contentId"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/me/realname -> user.RealName")
|
|
router.Post("/v1/me/realname"[len(r.Path()):], Func1(
|
|
r.user.RealName,
|
|
Body[dto.RealNameForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Post /v1/me/wallet/recharge -> user.Recharge")
|
|
router.Post("/v1/me/wallet/recharge"[len(r.Path()):], DataFunc1(
|
|
r.user.Recharge,
|
|
Body[dto.RechargeForm]("form"),
|
|
))
|
|
r.log.Debugf("Registering route: Put /v1/me -> user.Update")
|
|
router.Put("/v1/me"[len(r.Path()):], Func1(
|
|
r.user.Update,
|
|
Body[dto.UserUpdate]("form"),
|
|
))
|
|
|
|
r.log.Info("Successfully registered all routes")
|
|
}
|