diff --git a/modules/structs/customerfeedback.go b/modules/structs/customerfeedback.go index 1226278..4ce5b56 100644 --- a/modules/structs/customerfeedback.go +++ b/modules/structs/customerfeedback.go @@ -2,6 +2,7 @@ package structs import "time" +// swagger:model CustomerFeedback type CustomerFeedback struct { Id string Origin string diff --git a/public/swagger/swagger.json b/public/swagger/swagger.json index a9a0bf0..a52c637 100644 --- a/public/swagger/swagger.json +++ b/public/swagger/swagger.json @@ -503,6 +503,128 @@ } } }, + "/crm/nolink": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "crm" + ], + "summary": "Redirect to crm no link provided", + "operationId": "crmNoLinkProvidedRedirect", + "responses": { + "200": { + "description": "Redirect to crm no link provided" + }, + "500": { + "description": "Failed to redirect to crm no link provided" + } + } + } + }, + "/customerfeedback": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "customerFeedback" + ], + "summary": "Create customer feedback", + "operationId": "createCustomerFeedback", + "parameters": [ + { + "description": "Feedback origin", + "name": "origin", + "in": "query" + }, + { + "name": "data", + "in": "body", + "schema": { + "$ref": "#/definitions/CustomerFeedbackRequest" + } + } + ], + "responses": { + "200": { + "description": "Feedback created" + }, + "400": { + "description": "Invalid request" + }, + "401": { + "description": "No permissions" + }, + "500": { + "description": "Failed to create feedback" + } + } + } + }, + "/customerfeedback/origin": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "customerFeedback" + ], + "summary": "Get feedbacks by origin", + "operationId": "getCustomerOriginFeedbacks", + "parameters": [ + { + "description": "Feedback origin", + "name": "origin", + "in": "query" + } + ], + "responses": { + "200": { + "description": "List of feedbacks", + "schema": { + "$ref": "#/definitions/CustomerFeedback" + } + }, + "400": { + "description": "Invalid request query" + }, + "401": { + "description": "No permissions" + }, + "500": { + "description": "Failed to get origins" + } + } + } + }, + "/customerfeedback/origins": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "customerFeedback" + ], + "summary": "Get all origins", + "operationId": "getCustomerFeedbackOrigins", + "responses": { + "200": { + "description": "List of origins" + }, + "400": { + "description": "Invalid request query" + }, + "401": { + "description": "No permissions" + }, + "500": { + "description": "Failed to get origins" + } + } + } + }, "/equipment/documentation/create": { "post": { "consumes": [ @@ -1701,6 +1823,36 @@ }, "x-go-package": "jannex/admin-dashboard-backend/modules/structs" }, + "CustomerFeedback": { + "type": "object", + "properties": { + "CreatedAt": { + "type": "string", + "format": "date-time" + }, + "Data": { + "type": "object", + "additionalProperties": {} + }, + "Id": { + "type": "string" + }, + "Origin": { + "type": "string" + } + }, + "x-go-package": "jannex/admin-dashboard-backend/modules/structs" + }, + "CustomerFeedbackRequest": { + "type": "object", + "properties": { + "Data": { + "type": "object", + "additionalProperties": {} + } + }, + "x-go-package": "jannex/admin-dashboard-backend/modules/structs" + }, "EditEquipmentDocumentationRequest": { "type": "object", "properties": { diff --git a/routers/router/api/v1/customerfeedback/customerfeedback.go b/routers/router/api/v1/customerfeedback/customerfeedback.go index a0f3b30..46731b9 100644 --- a/routers/router/api/v1/customerfeedback/customerfeedback.go +++ b/routers/router/api/v1/customerfeedback/customerfeedback.go @@ -19,6 +19,29 @@ import ( ) func CreateCustomerFeedback(c *fiber.Ctx) error { + // swagger:operation POST /customerfeedback customerFeedback createCustomerFeedback + // --- + // summary: Create customer feedback + // produces: + // - application/json + // parameters: + // - name: origin + // in: query + // description: Feedback origin + // - name: data + // in: body + // schema: + // "$ref": "#/definitions/CustomerFeedbackRequest" + // responses: + // '200': + // description: Feedback created + // '400': + // description: Invalid request + // '401': + // description: No permissions + // '500': + // description: Failed to create feedback + var query structs.CustomerFeedbackQuery if err := rsutils.QueryParserHelper(c, &query); err != nil { @@ -75,6 +98,21 @@ func CreateCustomerFeedback(c *fiber.Ctx) error { } func GetCustomerFeedbackOrigins(c *fiber.Ctx) error { + // swagger:operation GET /customerfeedback/origins customerFeedback getCustomerFeedbackOrigins + // --- + // summary: Get all origins + // produces: + // - application/json + // responses: + // '200': + // description: List of origins + // '400': + // description: Invalid request query + // '401': + // description: No permissions + // '500': + // description: Failed to get origins + var origins []string if err := database.DB.Model(&structs.CustomerFeedback{}).Pluck("origin", &origins).Error; err != nil { @@ -100,6 +138,27 @@ func removeDuplicates(origins []string) []string { } func GetCustomerOriginFeedbacks(c *fiber.Ctx) error { + // swagger:operation GET /customerfeedback/origin customerFeedback getCustomerOriginFeedbacks + // --- + // summary: Get feedbacks by origin + // produces: + // - application/json + // parameters: + // - name: origin + // in: query + // description: Feedback origin + // responses: + // '200': + // description: List of feedbacks + // schema: + // "$ref": "#/definitions/CustomerFeedback" + // '400': + // description: Invalid request query + // '401': + // description: No permissions + // '500': + // description: Failed to get origins + var customerOriginFeedbacksParam structs.CustomerOriginFeedbacksParam if err := rsutils.ParamsParserHelper(c, &customerOriginFeedbacksParam); err != nil {