refactor: add field to APIError struct

This commit is contained in:
2025-11-02 22:39:04 -03:00
parent 92f13fba22
commit 01a7f33054
5 changed files with 25 additions and 3 deletions

View File

@@ -303,6 +303,11 @@ const docTemplate = `{
"description": "Additional error details", "description": "Additional error details",
"type": "string" "type": "string"
}, },
"field": {
"description": "Field name if applicable",
"type": "string",
"example": "name"
},
"message": { "message": {
"description": "Human-readable error message", "description": "Human-readable error message",
"type": "string" "type": "string"

View File

@@ -297,6 +297,11 @@
"description": "Additional error details", "description": "Additional error details",
"type": "string" "type": "string"
}, },
"field": {
"description": "Field name if applicable",
"type": "string",
"example": "name"
},
"message": { "message": {
"description": "Human-readable error message", "description": "Human-readable error message",
"type": "string" "type": "string"

View File

@@ -8,6 +8,10 @@ definitions:
details: details:
description: Additional error details description: Additional error details
type: string type: string
field:
description: Field name if applicable
example: name
type: string
message: message:
description: Human-readable error message description: Human-readable error message
type: string type: string

View File

@@ -97,17 +97,23 @@ func (h *ContactHandler) create(w http.ResponseWriter, r *http.Request) {
} }
if contact.Name == "" { if contact.Name == "" {
BadRequest(w, ErrMissingRequired, RequiredFieldErr("name")) err := ErrMissingRequired
err.Field = "name"
BadRequest(w, err, RequiredFieldErr("name"))
return return
} }
if contact.Company == "" { if contact.Company == "" {
BadRequest(w, ErrMissingRequired, RequiredFieldErr("company")) err := ErrMissingRequired
err.Field = "company"
BadRequest(w, err, RequiredFieldErr("company"))
return return
} }
if contact.Phone == "" { if contact.Phone == "" {
BadRequest(w, ErrMissingRequired, RequiredFieldErr("phone")) err := ErrMissingRequired
err.Field = "phone"
BadRequest(w, err, RequiredFieldErr("phone"))
return return
} }

View File

@@ -23,6 +23,8 @@ type APIError struct {
Message string `json:"message"` Message string `json:"message"`
// Additional error details // Additional error details
Details string `json:"details,omitempty"` Details string `json:"details,omitempty"`
// Field name if applicable
Field string `json:"field,omitempty" example:"name"`
} }
const content_type = "Content-Type" const content_type = "Content-Type"