From f56937c9a352d525d5a6f1d901e3a7d9eeeba5ad Mon Sep 17 00:00:00 2001 From: harold Date: Fri, 2 May 2025 22:16:53 +0500 Subject: [PATCH] add order id during create donat payment --- internal/api/http/handlers/donat/donat.go | 2 +- internal/docs/docs.go | 21 ++++++++++++--------- internal/docs/swagger.json | 21 ++++++++++++--------- internal/docs/swagger.yaml | 14 ++++++++------ internal/model/interfaces.go | 2 +- internal/model/models.go | 5 +++++ internal/service/donat/donat.go | 15 +++++++++------ 7 files changed, 48 insertions(+), 32 deletions(-) diff --git a/internal/api/http/handlers/donat/donat.go b/internal/api/http/handlers/donat/donat.go index 544d8a7..59355b9 100644 --- a/internal/api/http/handlers/donat/donat.go +++ b/internal/api/http/handlers/donat/donat.go @@ -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" diff --git a/internal/docs/docs.go b/internal/docs/docs.go index d176c70..43c5d6a 100644 --- a/internal/docs/docs.go +++ b/internal/docs/docs.go @@ -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": { diff --git a/internal/docs/swagger.json b/internal/docs/swagger.json index eacfd41..0503c63 100644 --- a/internal/docs/swagger.json +++ b/internal/docs/swagger.json @@ -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": { diff --git a/internal/docs/swagger.yaml b/internal/docs/swagger.yaml index aafabda..6f7888e 100644 --- a/internal/docs/swagger.yaml +++ b/internal/docs/swagger.yaml @@ -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: diff --git a/internal/model/interfaces.go b/internal/model/interfaces.go index af2729d..9231628 100644 --- a/internal/model/interfaces.go +++ b/internal/model/interfaces.go @@ -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) diff --git a/internal/model/models.go b/internal/model/models.go index 46ca6c7..1a5f56a 100644 --- a/internal/model/models.go +++ b/internal/model/models.go @@ -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"` +} diff --git a/internal/service/donat/donat.go b/internal/service/donat/donat.go index ab4fdea..6789add 100644 --- a/internal/service/donat/donat.go +++ b/internal/service/donat/donat.go @@ -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(