From 237121846e19214dd088d8a8d9dc8f6c65684531 Mon Sep 17 00:00:00 2001 From: Allisson Azevedo Date: Tue, 9 Mar 2021 08:55:06 -0300 Subject: [PATCH] feat: Add swagger spec for delivery and delivery-attempts endpoints (#24) --- docs/docs.go | 389 ++++++++++++++++++++++++++++++- docs/swagger.json | 389 ++++++++++++++++++++++++++++++- docs/swagger.yaml | 255 ++++++++++++++++++++ entity.go | 4 +- http/handler/delivery.go | 44 +++- http/handler/delivery_attempt.go | 25 +- http/handler/webhook.go | 4 +- 7 files changed, 1100 insertions(+), 10 deletions(-) diff --git a/docs/docs.go b/docs/docs.go index 0b53998..1c505a8 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -24,6 +24,291 @@ var doc = `{ "host": "{{.Host}}", "basePath": "{{.BasePath}}", "paths": { + "/deliveries": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "deliveries" + ], + "summary": "List deliveries", + "parameters": [ + { + "type": "integer", + "description": "The limit indicates the maximum number of items to return", + "name": "limit", + "in": "query", + "required": true + }, + { + "type": "integer", + "description": "The offset indicates the starting position of the query in relation to the complete set of unpaginated items", + "name": "offset", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "Filter by webhook_id", + "name": "webhook_id", + "in": "query" + }, + { + "type": "string", + "description": "Filter by status", + "name": "status", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeliveryList" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "deliveries" + ], + "summary": "Add an delivery", + "parameters": [ + { + "description": "Add delivery", + "name": "delivery", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Delivery" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Delivery" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/deliveries/{delivery_id}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "deliveries" + ], + "summary": "Show a delivery", + "parameters": [ + { + "type": "string", + "description": "Delivery ID", + "name": "delivery_id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Delivery" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "delete": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "deliveries" + ], + "summary": "Delete an delivery", + "parameters": [ + { + "type": "string", + "description": "Delivery ID", + "name": "delivery_id", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/delivery-attempts": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "delivery-attempts" + ], + "summary": "List delivery attempts", + "parameters": [ + { + "type": "integer", + "description": "The limit indicates the maximum number of items to return", + "name": "limit", + "in": "query", + "required": true + }, + { + "type": "integer", + "description": "The offset indicates the starting position of the query in relation to the complete set of unpaginated items", + "name": "offset", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "Filter by webhook_id", + "name": "webhook_id", + "in": "query" + }, + { + "type": "string", + "description": "Filter by delivery_id", + "name": "delivery_id", + "in": "query" + }, + { + "type": "string", + "description": "Filter by success", + "name": "success", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeliveryAttemptList" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/delivery-attempts/{delivery_attempt_id}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "delivery-attempts" + ], + "summary": "Show a delivery attempt", + "parameters": [ + { + "type": "string", + "description": "Delivery Attempt ID", + "name": "delivery_attempt_id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeliveryAttempt" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, "/webhooks": { "get": { "consumes": [ @@ -41,13 +326,15 @@ var doc = `{ "type": "integer", "description": "The limit indicates the maximum number of items to return", "name": "limit", - "in": "query" + "in": "query", + "required": true }, { "type": "integer", "description": "The offset indicates the starting position of the query in relation to the complete set of unpaginated items", "name": "offset", - "in": "query" + "in": "query", + "required": true } ], "responses": { @@ -248,6 +535,104 @@ var doc = `{ } }, "definitions": { + "Delivery": { + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "delivery_attempts": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "payload": { + "type": "string" + }, + "scheduled_at": { + "type": "string" + }, + "status": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "webhook_id": { + "type": "string" + } + } + }, + "DeliveryAttempt": { + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "delivery_id": { + "type": "string" + }, + "error": { + "type": "string" + }, + "execution_duration": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "raw_request": { + "type": "string" + }, + "raw_response": { + "type": "string" + }, + "response_status_code": { + "type": "integer" + }, + "success": { + "type": "boolean" + }, + "webhook_id": { + "type": "string" + } + } + }, + "DeliveryAttemptList": { + "type": "object", + "properties": { + "delivery_attempts": { + "type": "array", + "items": { + "$ref": "#/definitions/DeliveryAttempt" + } + }, + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + } + } + }, + "DeliveryList": { + "type": "object", + "properties": { + "deliveries": { + "type": "array", + "items": { + "$ref": "#/definitions/Delivery" + } + }, + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + } + } + }, "Error": { "type": "object", "properties": { diff --git a/docs/swagger.json b/docs/swagger.json index 9e2f94d..ab35c91 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -8,6 +8,291 @@ }, "basePath": "/v1", "paths": { + "/deliveries": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "deliveries" + ], + "summary": "List deliveries", + "parameters": [ + { + "type": "integer", + "description": "The limit indicates the maximum number of items to return", + "name": "limit", + "in": "query", + "required": true + }, + { + "type": "integer", + "description": "The offset indicates the starting position of the query in relation to the complete set of unpaginated items", + "name": "offset", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "Filter by webhook_id", + "name": "webhook_id", + "in": "query" + }, + { + "type": "string", + "description": "Filter by status", + "name": "status", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeliveryList" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "deliveries" + ], + "summary": "Add an delivery", + "parameters": [ + { + "description": "Add delivery", + "name": "delivery", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Delivery" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Delivery" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/deliveries/{delivery_id}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "deliveries" + ], + "summary": "Show a delivery", + "parameters": [ + { + "type": "string", + "description": "Delivery ID", + "name": "delivery_id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Delivery" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "delete": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "deliveries" + ], + "summary": "Delete an delivery", + "parameters": [ + { + "type": "string", + "description": "Delivery ID", + "name": "delivery_id", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/delivery-attempts": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "delivery-attempts" + ], + "summary": "List delivery attempts", + "parameters": [ + { + "type": "integer", + "description": "The limit indicates the maximum number of items to return", + "name": "limit", + "in": "query", + "required": true + }, + { + "type": "integer", + "description": "The offset indicates the starting position of the query in relation to the complete set of unpaginated items", + "name": "offset", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "Filter by webhook_id", + "name": "webhook_id", + "in": "query" + }, + { + "type": "string", + "description": "Filter by delivery_id", + "name": "delivery_id", + "in": "query" + }, + { + "type": "string", + "description": "Filter by success", + "name": "success", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeliveryAttemptList" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/delivery-attempts/{delivery_attempt_id}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "delivery-attempts" + ], + "summary": "Show a delivery attempt", + "parameters": [ + { + "type": "string", + "description": "Delivery Attempt ID", + "name": "delivery_attempt_id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeliveryAttempt" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, "/webhooks": { "get": { "consumes": [ @@ -25,13 +310,15 @@ "type": "integer", "description": "The limit indicates the maximum number of items to return", "name": "limit", - "in": "query" + "in": "query", + "required": true }, { "type": "integer", "description": "The offset indicates the starting position of the query in relation to the complete set of unpaginated items", "name": "offset", - "in": "query" + "in": "query", + "required": true } ], "responses": { @@ -232,6 +519,104 @@ } }, "definitions": { + "Delivery": { + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "delivery_attempts": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "payload": { + "type": "string" + }, + "scheduled_at": { + "type": "string" + }, + "status": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "webhook_id": { + "type": "string" + } + } + }, + "DeliveryAttempt": { + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "delivery_id": { + "type": "string" + }, + "error": { + "type": "string" + }, + "execution_duration": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "raw_request": { + "type": "string" + }, + "raw_response": { + "type": "string" + }, + "response_status_code": { + "type": "integer" + }, + "success": { + "type": "boolean" + }, + "webhook_id": { + "type": "string" + } + } + }, + "DeliveryAttemptList": { + "type": "object", + "properties": { + "delivery_attempts": { + "type": "array", + "items": { + "$ref": "#/definitions/DeliveryAttempt" + } + }, + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + } + } + }, + "DeliveryList": { + "type": "object", + "properties": { + "deliveries": { + "type": "array", + "items": { + "$ref": "#/definitions/Delivery" + } + }, + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + } + } + }, "Error": { "type": "object", "properties": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 83a356c..183b4f3 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1,5 +1,69 @@ basePath: /v1 definitions: + Delivery: + properties: + created_at: + type: string + delivery_attempts: + type: integer + id: + type: string + payload: + type: string + scheduled_at: + type: string + status: + type: string + updated_at: + type: string + webhook_id: + type: string + type: object + DeliveryAttempt: + properties: + created_at: + type: string + delivery_id: + type: string + error: + type: string + execution_duration: + type: integer + id: + type: string + raw_request: + type: string + raw_response: + type: string + response_status_code: + type: integer + success: + type: boolean + webhook_id: + type: string + type: object + DeliveryAttemptList: + properties: + delivery_attempts: + items: + $ref: '#/definitions/DeliveryAttempt' + type: array + limit: + type: integer + offset: + type: integer + type: object + DeliveryList: + properties: + deliveries: + items: + $ref: '#/definitions/Delivery' + type: array + limit: + type: integer + offset: + type: integer + type: object Error: properties: code: @@ -57,6 +121,195 @@ info: title: Postmand API version: "1.0" paths: + /deliveries: + get: + consumes: + - application/json + parameters: + - description: The limit indicates the maximum number of items to return + in: query + name: limit + required: true + type: integer + - description: The offset indicates the starting position of the query in relation + to the complete set of unpaginated items + in: query + name: offset + required: true + type: integer + - description: Filter by webhook_id + in: query + name: webhook_id + type: string + - description: Filter by status + in: query + name: status + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/DeliveryList' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/Error' + summary: List deliveries + tags: + - deliveries + post: + consumes: + - application/json + parameters: + - description: Add delivery + in: body + name: delivery + required: true + schema: + $ref: '#/definitions/Delivery' + produces: + - application/json + responses: + "201": + description: Created + schema: + $ref: '#/definitions/Delivery' + "400": + description: Bad Request + schema: + $ref: '#/definitions/Error' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/Error' + summary: Add an delivery + tags: + - deliveries + /deliveries/{delivery_id}: + delete: + consumes: + - application/json + parameters: + - description: Delivery ID + in: path + name: delivery_id + required: true + type: string + produces: + - application/json + responses: + "204": + description: No Content + "404": + description: Not Found + schema: + $ref: '#/definitions/Error' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/Error' + summary: Delete an delivery + tags: + - deliveries + get: + consumes: + - application/json + parameters: + - description: Delivery ID + in: path + name: delivery_id + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/Delivery' + "404": + description: Not Found + schema: + $ref: '#/definitions/Error' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/Error' + summary: Show a delivery + tags: + - deliveries + /delivery-attempts: + get: + consumes: + - application/json + parameters: + - description: The limit indicates the maximum number of items to return + in: query + name: limit + required: true + type: integer + - description: The offset indicates the starting position of the query in relation + to the complete set of unpaginated items + in: query + name: offset + required: true + type: integer + - description: Filter by webhook_id + in: query + name: webhook_id + type: string + - description: Filter by delivery_id + in: query + name: delivery_id + type: string + - description: Filter by success + in: query + name: success + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/DeliveryAttemptList' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/Error' + summary: List delivery attempts + tags: + - delivery-attempts + /delivery-attempts/{delivery_attempt_id}: + get: + consumes: + - application/json + parameters: + - description: Delivery Attempt ID + in: path + name: delivery_attempt_id + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/DeliveryAttempt' + "404": + description: Not Found + schema: + $ref: '#/definitions/Error' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/Error' + summary: Show a delivery attempt + tags: + - delivery-attempts /webhooks: get: consumes: @@ -65,11 +318,13 @@ paths: - description: The limit indicates the maximum number of items to return in: query name: limit + required: true type: integer - description: The offset indicates the starting position of the query in relation to the complete set of unpaginated items in: query name: offset + required: true type: integer produces: - application/json diff --git a/entity.go b/entity.go index c434aac..ba6ebd7 100644 --- a/entity.go +++ b/entity.go @@ -62,7 +62,7 @@ type Delivery struct { Status string `json:"status" db:"status"` CreatedAt time.Time `json:"created_at" db:"created_at"` UpdatedAt time.Time `json:"updated_at" db:"updated_at"` -} +} //@name Delivery // Validate implements ozzo validation Validatable interface func (d Delivery) Validate() error { @@ -83,4 +83,4 @@ type DeliveryAttempt struct { Success bool `json:"success" db:"success"` Error string `json:"error" db:"error"` CreatedAt time.Time `json:"created_at" db:"created_at"` -} +} //@name DeliveryAttempt diff --git a/http/handler/delivery.go b/http/handler/delivery.go index 8114935..f212e8c 100644 --- a/http/handler/delivery.go +++ b/http/handler/delivery.go @@ -13,7 +13,7 @@ type deliveryList struct { Deliveries []*postmand.Delivery `json:"deliveries"` Limit int `json:"limit"` Offset int `json:"offset"` -} +} //@name DeliveryList // Delivery implements rest interface for delivery. type Delivery struct { @@ -22,6 +22,18 @@ type Delivery struct { } // List deliveries. +// List godoc +// @Summary List deliveries +// @Tags deliveries +// @Accept json +// @Produce json +// @Param limit query int true "The limit indicates the maximum number of items to return" +// @Param offset query int true "The offset indicates the starting position of the query in relation to the complete set of unpaginated items" +// @Param webhook_id query string false "Filter by webhook_id" +// @Param status query string false "Filter by status" +// @Success 200 {object} deliveryList +// @Failure 500 {object} errorResponse +// @Router /deliveries [get] func (d Delivery) List(w http.ResponseWriter, r *http.Request) { listOptions, err := makeListOptions(r, []string{"webhook_id", "status"}) if err != nil { @@ -56,6 +68,16 @@ func (d Delivery) List(w http.ResponseWriter, r *http.Request) { } // Get delivery. +// Get godoc +// @Summary Show a delivery +// @Tags deliveries +// @Accept json +// @Produce json +// @Param delivery_id path string true "Delivery ID" +// @Success 200 {object} postmand.Delivery +// @Failure 404 {object} errorResponse +// @Failure 500 {object} errorResponse +// @Router /deliveries/{delivery_id} [get] func (d Delivery) Get(w http.ResponseWriter, r *http.Request) { deliveryID, err := uuid.Parse(chi.URLParam(r, "delivery_id")) if err != nil { @@ -89,6 +111,16 @@ func (d Delivery) Get(w http.ResponseWriter, r *http.Request) { } // Create delivery. +// Create godoc +// @Summary Add an delivery +// @Tags deliveries +// @Accept json +// @Produce json +// @Param delivery body postmand.Delivery true "Add delivery" +// @Success 201 {object} postmand.Delivery +// @Failure 400 {object} errorResponse +// @Failure 500 {object} errorResponse +// @Router /deliveries [post] func (d Delivery) Create(w http.ResponseWriter, r *http.Request) { // Parse request delivery := postmand.Delivery{} @@ -114,6 +146,16 @@ func (d Delivery) Create(w http.ResponseWriter, r *http.Request) { } // Delete delivery. +// Delete godoc +// @Summary Delete an delivery +// @Tags deliveries +// @Accept json +// @Produce json +// @Param delivery_id path string true "Delivery ID" +// @Success 204 "No Content" +// @Failure 404 {object} errorResponse +// @Failure 500 {object} errorResponse +// @Router /deliveries/{delivery_id} [delete] func (d Delivery) Delete(w http.ResponseWriter, r *http.Request) { deliveryID, err := uuid.Parse(chi.URLParam(r, "delivery_id")) if err != nil { diff --git a/http/handler/delivery_attempt.go b/http/handler/delivery_attempt.go index 45b8a50..aff7582 100644 --- a/http/handler/delivery_attempt.go +++ b/http/handler/delivery_attempt.go @@ -13,7 +13,7 @@ type deliveryAttemptList struct { DeliveryAttempts []*postmand.DeliveryAttempt `json:"delivery_attempts"` Limit int `json:"limit"` Offset int `json:"offset"` -} +} //@name DeliveryAttemptList // DeliveryAttempt implements rest interface for delivery attempt. type DeliveryAttempt struct { @@ -22,6 +22,19 @@ type DeliveryAttempt struct { } // List delivery attempts. +// List godoc +// @Summary List delivery attempts +// @Tags delivery-attempts +// @Accept json +// @Produce json +// @Param limit query int true "The limit indicates the maximum number of items to return" +// @Param offset query int true "The offset indicates the starting position of the query in relation to the complete set of unpaginated items" +// @Param webhook_id query string false "Filter by webhook_id" +// @Param delivery_id query string false "Filter by delivery_id" +// @Param success query string false "Filter by success" +// @Success 200 {object} deliveryAttemptList +// @Failure 500 {object} errorResponse +// @Router /delivery-attempts [get] func (d DeliveryAttempt) List(w http.ResponseWriter, r *http.Request) { listOptions, err := makeListOptions(r, []string{"webhook_id", "delivery_id", "success"}) if err != nil { @@ -56,6 +69,16 @@ func (d DeliveryAttempt) List(w http.ResponseWriter, r *http.Request) { } // Get delivery attempt. +// Get godoc +// @Summary Show a delivery attempt +// @Tags delivery-attempts +// @Accept json +// @Produce json +// @Param delivery_attempt_id path string true "Delivery Attempt ID" +// @Success 200 {object} postmand.DeliveryAttempt +// @Failure 404 {object} errorResponse +// @Failure 500 {object} errorResponse +// @Router /delivery-attempts/{delivery_attempt_id} [get] func (d DeliveryAttempt) Get(w http.ResponseWriter, r *http.Request) { deliveryAttemptID, err := uuid.Parse(chi.URLParam(r, "delivery_attempt_id")) if err != nil { diff --git a/http/handler/webhook.go b/http/handler/webhook.go index c00d17e..0545552 100644 --- a/http/handler/webhook.go +++ b/http/handler/webhook.go @@ -27,8 +27,8 @@ type Webhook struct { // @Tags webhooks // @Accept json // @Produce json -// @Param limit query int false "The limit indicates the maximum number of items to return" -// @Param offset query int false "The offset indicates the starting position of the query in relation to the complete set of unpaginated items" +// @Param limit query int true "The limit indicates the maximum number of items to return" +// @Param offset query int true "The offset indicates the starting position of the query in relation to the complete set of unpaginated items" // @Success 200 {object} webhookList // @Failure 500 {object} errorResponse // @Router /webhooks [get]