package web import ( "platform/pkg/env" auth2 "platform/web/auth" "platform/web/handlers" "time" q "platform/web/queries" "github.com/gofiber/fiber/v2" ) func ApplyRouters(app *fiber.App) { api := app.Group("/api") userRouter(api) adminRouter(api) clientRouter(api) // 回调 callbacks := app.Group("/callback") callbacks.Get("/identify", handlers.IdentifyCallbackNew) // 临时 if env.RunMode == env.RunModeDev { debug := app.Group("/debug") debug.Get("/sms/:phone", handlers.DebugGetSmsCode) debug.Get("/proxy/register", handlers.DebugRegisterProxyBaiYin) debug.Get("/iden/clear/:phone", handlers.DebugIdentifyClear) debug.Get("/session/now", func(ctx *fiber.Ctx) error { rs, err := q.Session.Where(q.Session.AccessTokenExpires.Gt(time.Now())).Find() if err != nil { return err } return ctx.JSON(rs) }) } } // 用户接口路由 func userRouter(api fiber.Router) { // 认证 auth := api.Group("/auth") auth.Get("/authorize", auth2.AuthorizeGet) auth.Post("/authorize", auth2.AuthorizePost) auth.Post("/token", auth2.Token) auth.Post("/revoke", auth2.Revoke) auth.Post("/introspect", auth2.Introspect) // 用户 user := api.Group("/user") user.Post("/update", handlers.UpdateUser) user.Post("/update/account", handlers.UpdateAccount) user.Post("/update/password", handlers.UpdatePassword) user.Post("/identify", handlers.Identify) // 白名单 whitelist := api.Group("/whitelist") whitelist.Post("/list", handlers.ListWhitelist) whitelist.Post("/create", handlers.CreateWhitelist) whitelist.Post("/update", handlers.UpdateWhitelist) whitelist.Post("/remove", handlers.RemoveWhitelist) // 套餐 resource := api.Group("/resource") resource.Post("/all", handlers.AllActiveResource) resource.Post("/list/short", handlers.PageResourceShort) resource.Post("/list/long", handlers.PageResourceLong) resource.Post("/create", handlers.CreateResource) resource.Post("/statistics/free", handlers.StatisticResourceFree) resource.Post("/statistics/usage", handlers.StatisticResourceUsage) // 批次 batch := api.Group("/batch") batch.Post("/page", handlers.PageBatch) // 通道 channel := api.Group("/channel") channel.Post("/list", handlers.ListChannel) channel.Post("/create", handlers.CreateChannel) // 交易 trade := api.Group("/trade") trade.Post("/create", handlers.TradeCreate) trade.Post("/complete", handlers.TradeComplete) trade.Post("/cancel", handlers.TradeCancel) trade.Get("/check", handlers.TradeCheck) // 账单 bill := api.Group("/bill") bill.Post("/list", handlers.ListBill) // 公告 announcement := api.Group("/announcement") announcement.Post("/list", handlers.ListAnnouncements) // 网关 proxy := api.Group("/proxy") proxy.Post("/online", handlers.ProxyReportOnline) proxy.Post("/offline", handlers.ProxyReportOffline) proxy.Post("/update", handlers.ProxyReportUpdate) // 节点 edge := api.Group("/edge") edge.Post("/assign", handlers.AssignEdge) edge.Post("/all", handlers.AllEdgesAvailable) // 前台 inquiry := api.Group("/inquiry") inquiry.Post("/create", handlers.CreateInquiry) } // 客户端接口路由 func clientRouter(api fiber.Router) { client := api // 验证短信令牌 client.Post("/verify/sms", handlers.SmsCode) // 套餐定价查询 resource := client.Group("/resource") resource.Post("/price", handlers.ResourcePrice) // 通道管理 channel := client.Group("/channel") channel.Post("/remove", handlers.RemoveChannels) // 代理网关注册 proxy := client.Group("/proxy") proxy.Post("/register/baidyin", handlers.ProxyRegisterBaiYin) } // 管理员接口路由 func adminRouter(api fiber.Router) { api = api.Group("/admin") // admin 管理员 var admin = api.Group("/admin") admin.Post("/all", handlers.AllAdminByAdmin) admin.Post("/page", handlers.PageAdminByAdmin) admin.Post("/create", handlers.CreateAdmin) admin.Post("/update", handlers.UpdateAdmin) admin.Post("/remove", handlers.RemoveAdmin) // admin-role 管理员角色 var adminRole = api.Group("/admin-role") adminRole.Post("/list", handlers.AllAdminRoleByAdmin) adminRole.Post("/page", handlers.PageAdminRoleByAdmin) adminRole.Post("/create", handlers.CreateAdminRole) adminRole.Post("/update", handlers.UpdateAdminRole) adminRole.Post("/remove", handlers.RemoveAdminRole) // permission 权限 var permission = api.Group("/permission") permission.Post("/list", handlers.AllPermissionByAdmin) permission.Post("/page", handlers.PagePermissionByAdmin) // user 用户 var user = api.Group("/user") user.Post("/page", handlers.PageUserByAdmin) user.Post("/page/not-bind", handlers.PageUserNotBindByAdmin) user.Post("/get", handlers.GetUserByAdmin) user.Post("/create", handlers.CreateUserByAdmin) user.Post("/update", handlers.UpdateUserByAdmin) user.Post("/remove", handlers.RemoveUserByAdmin) user.Post("/update/bind", handlers.BindAdmin) user.Post("/update/balance", handlers.UpdateUserBalanceByAdmin) user.Post("/update/balance-inc", handlers.UpdateUserBalanceIncByAdmin) user.Post("/update/balance-dec", handlers.UpdateUserBalanceDecByAdmin) // resource 套餐 var resource = api.Group("/resource") resource.Post("/short/page", handlers.PageResourceShortByAdmin) resource.Post("/short/page/of-user", handlers.PageResourceShortOfUserByAdmin) resource.Post("/long/page", handlers.PageResourceLongByAdmin) resource.Post("/long/page/of-user", handlers.PageResourceLongOfUserByAdmin) resource.Post("/update", handlers.UpdateResourceByAdmin) // batch 批次 var batch = api.Group("/batch") batch.Post("/page", handlers.PageBatchByAdmin) batch.Post("/page/of-user", handlers.PageBatchOfUserByAdmin) // channel 通道 var channel = api.Group("/channel") channel.Post("/page", handlers.PageChannelByAdmin) channel.Post("/page/of-user", handlers.PageChannelOfUserByAdmin) // trade 交易 var trade = api.Group("/trade") trade.Post("/page", handlers.PageTradeByAdmin) trade.Post("/page/of-user", handlers.PageTradeOfUserByAdmin) trade.Post("/complete", handlers.TradeCompleteByAdmin) // bill 账单 var bill = api.Group("/bill") bill.Post("/page", handlers.PageBillByAdmin) bill.Post("/page/of-user", handlers.PageBillOfUserByAdmin) // balance-activity 余额变动 var balanceActivity = api.Group("/balance-activity") balanceActivity.Post("/page", handlers.PageBalanceActivityByAdmin) balanceActivity.Post("/page/of-user", handlers.PageBalanceActivityOfUserByAdmin) // product 产品 var product = api.Group("/product") product.Post("/all", handlers.AllProductByAdmin) product.Post("/create", handlers.CreateProduct) product.Post("/update", handlers.UpdateProduct) product.Post("/remove", handlers.DeleteProduct) product.Post("/sku/all", handlers.AllProductSkuByAdmin) product.Post("/sku/page", handlers.PageProductSkuByAdmin) product.Post("/sku/create", handlers.CreateProductSku) product.Post("/sku/update", handlers.UpdateProductSku) product.Post("/sku/update/status", handlers.UpdateProductStatusSku) product.Post("/sku/remove", handlers.DeleteProductSku) product.Post("/sku/update/discount/batch", handlers.BatchUpdateProductSkuDiscount) // discount 折扣 var discount = api.Group("/discount") discount.Post("/all", handlers.AllDiscountByAdmin) discount.Post("/page", handlers.PageDiscountByAdmin) discount.Post("/create", handlers.CreateDiscount) discount.Post("/update", handlers.UpdateDiscount) discount.Post("/remove", handlers.DeleteDiscount) // coupon 优惠券 var coupon = api.Group("/coupon") coupon.Post("/all", handlers.AllCouponByAdmin) coupon.Post("/page", handlers.PageCouponByAdmin) coupon.Post("/create", handlers.CreateCoupon) coupon.Post("/update", handlers.UpdateCoupon) coupon.Post("/remove", handlers.DeleteCoupon) }