added swagger

main
alex 2024-05-27 21:49:16 +02:00
parent 73824e6fb2
commit 82f839142d
3 changed files with 212 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package structs
import "time" import "time"
// swagger:model CustomerFeedback
type CustomerFeedback struct { type CustomerFeedback struct {
Id string Id string
Origin string Origin string

View File

@ -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": { "/equipment/documentation/create": {
"post": { "post": {
"consumes": [ "consumes": [
@ -1701,6 +1823,36 @@
}, },
"x-go-package": "jannex/admin-dashboard-backend/modules/structs" "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": { "EditEquipmentDocumentationRequest": {
"type": "object", "type": "object",
"properties": { "properties": {

View File

@ -19,6 +19,29 @@ import (
) )
func CreateCustomerFeedback(c *fiber.Ctx) error { 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 var query structs.CustomerFeedbackQuery
if err := rsutils.QueryParserHelper(c, &query); err != nil { if err := rsutils.QueryParserHelper(c, &query); err != nil {
@ -75,6 +98,21 @@ func CreateCustomerFeedback(c *fiber.Ctx) error {
} }
func GetCustomerFeedbackOrigins(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 var origins []string
if err := database.DB.Model(&structs.CustomerFeedback{}).Pluck("origin", &origins).Error; err != nil { 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 { 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 var customerOriginFeedbacksParam structs.CustomerOriginFeedbacksParam
if err := rsutils.ParamsParserHelper(c, &customerOriginFeedbacksParam); err != nil { if err := rsutils.ParamsParserHelper(c, &customerOriginFeedbacksParam); err != nil {