Files
olons_server/internal/httpapi/api.go
T

63 lines
2.6 KiB
Go

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"})
}