You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
246 lines
5.7 KiB
246 lines
5.7 KiB
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
pbredpacket "github.com/openimsdk/protocol/redpacket"
|
|
"github.com/openimsdk/tools/a2r"
|
|
"github.com/openimsdk/tools/apiresp"
|
|
"github.com/openimsdk/tools/log"
|
|
)
|
|
|
|
type RedPacketApi struct {
|
|
Client pbredpacket.RedPacketClient
|
|
}
|
|
|
|
func NewRedPacketApi(client pbredpacket.RedPacketClient) *RedPacketApi {
|
|
return &RedPacketApi{Client: client}
|
|
}
|
|
|
|
func (h *RedPacketApi) CreateOrder(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.CreateOrderReq](ctx)
|
|
if err != nil {
|
|
log.ZError(ctx, "redpacket create order parse failed", err)
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.CreateOrder(ctx, req)
|
|
if err != nil {
|
|
log.ZError(ctx, "redpacket create order rpc failed", err)
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) CreatedCallback(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.CreatedCallbackReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.CreatedCallback(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) GetDetail(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.GetDetailReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.GetDetail(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) IssueClaimSign(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.IssueClaimSignReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.IssueClaimSign(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) ClaimResult(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.ClaimResultReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.ClaimResult(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) RequestRefund(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.RequestRefundReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.RequestRefund(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) GetRefund(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.GetRefundReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.GetRefund(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) IssueWalletBindChallenge(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.IssueWalletBindChallengeReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.IssueWalletBindChallenge(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) ConfirmWalletBind(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.ConfirmWalletBindReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.ConfirmWalletBind(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) GetWalletBinding(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.GetWalletBindingReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.GetWalletBinding(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
// Admin endpoints
|
|
|
|
func (h *RedPacketApi) AdminSetSigner(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.SetSignerReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.SetSigner(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) AdminSetToken(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.SetTokenReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.SetToken(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) AdminSetExpiry(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.SetExpiryReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.SetExpiry(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) AdminSetAllowAllTokens(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.SetAllowAllTokensReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.SetAllowAllTokens(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) AdminSetNativeTokenEnabled(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.SetNativeTokenEnabledReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.SetNativeTokenEnabled(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|
|
|
|
func (h *RedPacketApi) AdminParseTxEvents(ctx *gin.Context) {
|
|
req, err := a2r.ParseRequestNotCheck[pbredpacket.ParseTxEventsReq](ctx)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
resp, err := h.Client.ParseTxEvents(ctx, req)
|
|
if err != nil {
|
|
apiresp.GinError(ctx, err)
|
|
return
|
|
}
|
|
apiresp.GinSuccess(ctx, resp)
|
|
}
|