Files
commerce/api/user/handlers.go
zeekay 1943f1c093 Hanzo Commerce
Multi-tenant commerce and billing: orders, subscriptions, invoices, plans,
usage metering and a credit ledger. One Go binary. MIT OR Apache-2.0.

Claude-Session: https://claude.ai/code/session_01SAtaDFm8VDiWrhYHNNtxMw
2026-09-23 21:52:16 -07:00

38 lines
1.8 KiB
Go

package user
import (
"github.com/zap-proto/zip"
"github.com/hanzoai/commerce/api/user/wallet"
"github.com/hanzoai/commerce/middleware"
"github.com/hanzoai/commerce/models/user"
"github.com/hanzoai/commerce/util/permission"
"github.com/hanzoai/commerce/util/rest"
)
func Route(router *zip.Group, args ...zip.Handler) {
readUserRequired := middleware.TokenRequired(permission.Admin, permission.ReadUser)
writeUserRequired := middleware.TokenRequired(permission.Admin, permission.WriteUser)
readOrderOrSubscriptionRequired := middleware.TokenRequired(permission.Admin, permission.ReadOrder)
readReferralRequired := middleware.TokenRequired(permission.Admin, permission.ReadReferral)
readReferrerRequired := middleware.TokenRequired(permission.Admin, permission.ReadReferrer)
api := rest.New(user.User{})
api.GET("/:userid/password/reset", writeUserRequired, resetPassword)
api.GET("/:userid/orders", readUserRequired, readOrderOrSubscriptionRequired, getOrders)
api.GET("/:userid/referrals", readUserRequired, readReferralRequired, getReferrals)
api.GET("/:userid/referrers", readUserRequired, readReferrerRequired, getReferrers)
api.GET("/:userid/transactions", readUserRequired, getTransactions)
api.GET("/:userid/tokentransactions", readUserRequired, getTokenTransactions)
api.GET("/:userid/paymentmethods", readUserRequired, getPaymentMethods)
api.GET("/:userid/transfer", readUserRequired, getTransfers)
api.GET("/:userid/affiliate", readUserRequired, getAffiliate)
api.GET("/:userid/wallet", writeUserRequired, wallet.Get)
api.GET("/:userid/wallet/account/:name", writeUserRequired, wallet.GetAccount)
api.POST("/:userid/wallet/account", writeUserRequired, wallet.CreateAccount)
api.POST("/:userid/wallet/pay", writeUserRequired, wallet.Send)
api.Route(router, args...)
}