add order id during create donat payment

This commit is contained in:
harold 2025-05-02 22:16:53 +05:00
parent 5b5ff68da2
commit f56937c9a3
7 changed files with 48 additions and 32 deletions

View File

@ -21,7 +21,7 @@ import (
// @Produce json
// @Param streamer-login path string true "Login стримера"
// @Param request body model.CreateDonatBody true "Create donat body json"
// @Success 200 {object} api.CreatePaymentResponse "Donat page updated successfully"
// @Success 200 {object} model.CreateDonatResponse "Donat page updated successfully"
// @Failure 400 {object} echo.HTTPError "Bad request"
// @Failure 401 {object} echo.HTTPError "Unauthorized or expired token"
// @Failure 422 {object} echo.HTTPError "Validation error"

View File

@ -459,7 +459,7 @@ const docTemplate = `{
"200": {
"description": "Donat page updated successfully",
"schema": {
"$ref": "#/definitions/donat-widget_internal_model_api.CreatePaymentResponse"
"$ref": "#/definitions/donat-widget_internal_model.CreateDonatResponse"
}
},
"400": {
@ -1521,6 +1521,17 @@ const docTemplate = `{
}
}
},
"donat-widget_internal_model.CreateDonatResponse": {
"type": "object",
"properties": {
"order_id": {
"type": "string"
},
"payment_url": {
"type": "string"
}
}
},
"donat-widget_internal_model.CreateWidgetBody": {
"type": "object",
"required": [
@ -2249,14 +2260,6 @@ const docTemplate = `{
}
}
},
"donat-widget_internal_model_api.CreatePaymentResponse": {
"type": "object",
"properties": {
"payment_url": {
"type": "string"
}
}
},
"echo.HTTPError": {
"type": "object",
"properties": {

View File

@ -452,7 +452,7 @@
"200": {
"description": "Donat page updated successfully",
"schema": {
"$ref": "#/definitions/donat-widget_internal_model_api.CreatePaymentResponse"
"$ref": "#/definitions/donat-widget_internal_model.CreateDonatResponse"
}
},
"400": {
@ -1514,6 +1514,17 @@
}
}
},
"donat-widget_internal_model.CreateDonatResponse": {
"type": "object",
"properties": {
"order_id": {
"type": "string"
},
"payment_url": {
"type": "string"
}
}
},
"donat-widget_internal_model.CreateWidgetBody": {
"type": "object",
"required": [
@ -2242,14 +2253,6 @@
}
}
},
"donat-widget_internal_model_api.CreatePaymentResponse": {
"type": "object",
"properties": {
"payment_url": {
"type": "string"
}
}
},
"echo.HTTPError": {
"type": "object",
"properties": {

View File

@ -20,6 +20,13 @@ definitions:
text:
type: string
type: object
donat-widget_internal_model.CreateDonatResponse:
properties:
order_id:
type: string
payment_url:
type: string
type: object
donat-widget_internal_model.CreateWidgetBody:
properties:
audio:
@ -537,11 +544,6 @@ definitions:
$ref: '#/definitions/donat-widget_internal_model.GetWidgetDb'
type: array
type: object
donat-widget_internal_model_api.CreatePaymentResponse:
properties:
payment_url:
type: string
type: object
echo.HTTPError:
properties:
message: {}
@ -743,7 +745,7 @@ paths:
"200":
description: Donat page updated successfully
schema:
$ref: '#/definitions/donat-widget_internal_model_api.CreatePaymentResponse'
$ref: '#/definitions/donat-widget_internal_model.CreateDonatResponse'
"400":
description: Bad request
schema:

View File

@ -72,7 +72,7 @@ type DonatService interface {
CheckToken(request echo.Context) (api.CheckTokenResponse, error)
CreateDonat(ctx context.Context, streamerLogin, text, donatUser string, targetID *int, amount int) (api.CreatePaymentResponse, error)
CreateDonat(ctx context.Context, streamerLogin, text, donatUser string, targetID *int, amount int) (CreateDonatResponse, error)
GetDonatsByStreamerID(ctx context.Context, streamerID, page, limit int) ([]*Donat, error)
GetDonatByOrderID(ctx context.Context, orderID string) (*Donat, error)

View File

@ -375,3 +375,8 @@ type StreamerInfo struct {
type UpdateAvatarBody struct {
Avatar string `json:"avatar" validate:"required,uuid4"`
}
type CreateDonatResponse struct {
PaymentUrl string `json:"payment_url"`
OrderID uuid.UUID `json:"order_id"`
}

View File

@ -93,18 +93,18 @@ func (donatService *ServiceDonat) CreateDonat(
donatUser string,
targetID *int,
amount int,
) (api.CreatePaymentResponse, error) {
) (model.CreateDonatResponse, error) {
donatePage, err := donatService.donatRepo.GetDonatPageByLogin(ctx, streamerLogin)
if err != nil {
slog.Error("Failed to get donate page", "error", err.Error())
return api.CreatePaymentResponse{}, err
return model.CreateDonatResponse{}, err
}
widgets, err := donatService.widgetRepo.GetWidgetsByStreamerID(ctx, donatePage.StreamerID)
if err != nil {
slog.Error(err.Error())
return api.CreatePaymentResponse{}, err
return model.CreateDonatResponse{}, err
}
orderID := uuid.New()
@ -122,16 +122,19 @@ func (donatService *ServiceDonat) CreateDonat(
)
if err != nil {
slog.Error(err.Error())
return api.CreatePaymentResponse{}, err
return model.CreateDonatResponse{}, err
}
createPaymentResponse, err := donatService.paymentClient.CreatePayment(donatePage.StreamerID, amount, orderID)
if err != nil {
slog.Error(err.Error())
return api.CreatePaymentResponse{}, err
return model.CreateDonatResponse{}, err
}
var createDonatResp model.CreateDonatResponse
createDonatResp.PaymentUrl = createPaymentResponse.PaymentUrl
createDonatResp.OrderID = orderID
return createPaymentResponse, err
return createDonatResp, err
}
func (donatService *ServiceDonat) GetDonatsByStreamerID(