mirror of
https://github.com/hanzoai/commerce.git
synced 2026-10-30 15:08:42 +00:00
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
38 lines
1.8 KiB
Go
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...)
|
|
}
|