package httpapi import ( "net/http" "git.118im.com/im_team/im_workbench/internal/accounts" "git.118im.com/im_team/im_workbench/internal/auth" "git.118im.com/im_team/im_workbench/internal/finance" "git.118im.com/im_team/im_workbench/internal/mall" "git.118im.com/im_team/im_workbench/internal/portal" "git.118im.com/im_team/im_workbench/internal/tasks" ) type API struct { auth *auth.Authenticator accounts *accounts.Service portal *portal.Service tasks *tasks.Service mall *mall.Service finance *finance.Service } func New(authenticator *auth.Authenticator, accountService *accounts.Service, portalService *portal.Service, taskService *tasks.Service, mallService *mall.Service, financeService *finance.Service) *API { return &API{auth: authenticator, accounts: accountService, portal: portalService, tasks: taskService, mall: mallService, finance: financeService} } func (a *API) Register(mux *http.ServeMux) { mux.HandleFunc("/v1/auth/register", a.accountRegister) mux.HandleFunc("/v1/auth/login", a.accountLogin) mux.HandleFunc("/v1/auth/logout", a.accountLogout) mux.HandleFunc("/v1/me", a.memberProfile) mux.HandleFunc("/v1/me/avatar", a.memberAvatar) mux.HandleFunc("/v1/me/password", a.memberPassword) mux.HandleFunc("/v1/me/trade-password", a.memberTradePassword) mux.HandleFunc("/v1/home", a.home) mux.HandleFunc("/v1/banners", a.banners) mux.HandleFunc("/v1/contents/", a.content) mux.HandleFunc("/v1/member-levels", a.memberLevels) mux.HandleFunc("/v1/leaderboard", a.leaderboard) mux.HandleFunc("/v1/customer-services", a.customerServices) mux.HandleFunc("/v1/notices", a.notices) mux.HandleFunc("/v1/task-halls", a.taskHalls) mux.HandleFunc("/v1/tasks/eligibility", a.taskEligibility) mux.HandleFunc("/v1/tasks/stats", a.taskStats) mux.HandleFunc("/v1/task-orders/claim", a.taskClaim) mux.HandleFunc("/v1/task-orders", a.taskOrders) mux.HandleFunc("/v1/task-orders/", a.taskOrderResource) mux.HandleFunc("/v1/manual-products", a.manualProducts) mux.HandleFunc("/v1/manual-products/", a.manualProduct) mux.HandleFunc("/v1/payment-accounts", a.paymentAccounts) mux.HandleFunc("/v1/wallet/ledgers", a.walletLedgers) mux.HandleFunc("/v1/recharge/channels", a.rechargeChannels) mux.HandleFunc("/v1/recharge-orders", a.rechargeOrders) mux.HandleFunc("/v1/recharge-orders/", a.rechargeOrder) mux.HandleFunc("/v1/withdrawal-orders/quote", a.withdrawalQuote) mux.HandleFunc("/v1/withdrawal-orders", a.withdrawalOrders) mux.HandleFunc("/v1/withdrawal-orders/", a.withdrawalOrder) } func (a *API) Healthz(w http.ResponseWriter, r *http.Request) { writeSuccess(w, r, map[string]any{"status": "ok", "service": "workbench"}) }