69 lines
2.6 KiB
Go
69 lines
2.6 KiB
Go
package v1
|
|
|
|
import (
|
|
"quyun/v2/app/errorx"
|
|
"quyun/v2/app/http/v1/dto"
|
|
"quyun/v2/app/services"
|
|
"quyun/v2/database/models"
|
|
|
|
"github.com/gofiber/fiber/v3"
|
|
)
|
|
|
|
// @provider
|
|
type Creator struct{}
|
|
|
|
// Apply to become a creator
|
|
//
|
|
// @Router /v1/t/:tenantCode/creator/apply [post]
|
|
// @Router /v1/t/:tenantCode/creator/members/:id<int>/review [post]
|
|
// @Router /v1/t/:tenantCode/creator/members/invite [post]
|
|
// @Router /v1/t/:tenantCode/creator/members [get]
|
|
// @Router /v1/t/:tenantCode/creator/members/invites [get]
|
|
// @Router /v1/t/:tenantCode/creator/members/invites/:id<int> [delete]
|
|
// @Router /v1/t/:tenantCode/creator/members/join-requests [get]
|
|
// @Router /v1/t/:tenantCode/creator/members/:id<int> [delete]
|
|
// @Router /v1/t/:tenantCode/creator/reports/overview [get]
|
|
// @Router /v1/t/:tenantCode/creator/reports/export [post]
|
|
// @Router /v1/t/:tenantCode/creator/dashboard [get]
|
|
// @Router /v1/t/:tenantCode/creator/contents/:id<int> [get]
|
|
// @Router /v1/t/:tenantCode/creator/contents [get]
|
|
// @Router /v1/t/:tenantCode/creator/contents [post]
|
|
// @Router /v1/t/:tenantCode/creator/contents/:id<int> [put]
|
|
// @Router /v1/t/:tenantCode/creator/contents/:id<int> [delete]
|
|
// @Router /v1/t/:tenantCode/creator/orders [get]
|
|
// @Router /v1/t/:tenantCode/creator/orders/:id<int>/refund [post]
|
|
// @Router /v1/t/:tenantCode/creator/settings [get]
|
|
// @Router /v1/t/:tenantCode/creator/settings [put]
|
|
// @Router /v1/t/:tenantCode/creator/payout-accounts [get]
|
|
// @Router /v1/t/:tenantCode/creator/payout-accounts [post]
|
|
// @Router /v1/t/:tenantCode/creator/payout-accounts [delete]
|
|
// @Router /v1/t/:tenantCode/creator/withdraw [post]
|
|
// @Router /v1/t/:tenantCode/creator/coupons [post]
|
|
// @Router /v1/t/:tenantCode/creator/coupons [get]
|
|
// @Router /v1/t/:tenantCode/creator/coupons/:id<int> [get]
|
|
// @Router /v1/t/:tenantCode/creator/coupons/:id<int> [put]
|
|
// @Router /v1/t/:tenantCode/creator/coupons/:id<int>/grant [post]
|
|
|
|
// @Summary Grant coupon
|
|
// @Description Grant coupon to users
|
|
// @Tags CreatorCenter
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param id path int64 true "Coupon ID"
|
|
// @Param form body dto.CouponGrantForm true "Grant form"
|
|
// @Success 200 {string} string "Granted"
|
|
// @Bind user local key(__ctx_user)
|
|
// @Bind id path
|
|
// @Bind form body
|
|
func (c *Creator) GrantCoupon(ctx fiber.Ctx, user *models.User, id int64, form *dto.CouponGrantForm) (string, error) {
|
|
tenantID := getTenantID(ctx)
|
|
if form == nil {
|
|
return "", errorx.ErrInvalidParameter.WithMsg("参数无效")
|
|
}
|
|
_, err := services.Coupon.Grant(ctx, tenantID, id, form.UserIDs)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return "Granted", nil
|
|
}
|