fix(auth,services,profile): add request struct validation

Add validate tags and validators.Validate.Struct() calls on request structs for auth verification, service creation, and user patch test endpoints.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-05-31 18:49:12 +01:00
co-authored by Sisyphus
parent 577cceb304
commit 1d8247e655
3 changed files with 19 additions and 3 deletions
+10 -2
View File
@@ -407,11 +407,11 @@ func RefreshTokenHandler(w http.ResponseWriter, r *http.Request) {
}
type VerificationCodeRequest struct {
Email string `json:"email"`
Email string `json:"email" validate:"required,email,max=254"`
}
type VerifyCodeRequest struct {
Code string `json:"code"`
Code string `json:"code" validate:"required,max=64"`
}
type VerificationResponse struct {
@@ -425,6 +425,10 @@ func GenerateVerificationCodeHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "invalid request", http.StatusBadRequest)
return
}
if err := validators.Validate.Struct(&req); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
email := strings.TrimSpace(strings.ToLower(req.Email))
if email == "" {
@@ -472,6 +476,10 @@ func VerifyCodeHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "invalid request", http.StatusBadRequest)
return
}
if err := validators.Validate.Struct(&req); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
code := strings.TrimSpace(req.Code)
if code == "" {
+4
View File
@@ -88,6 +88,10 @@ func CreateServiceHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "Invalid JSON: "+err.Error(), http.StatusBadRequest)
return
}
if err := validators.Validate.Struct(&req); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// Basic validation
if req.Name == "" {
+5 -1
View File
@@ -657,7 +657,7 @@ func GetEligiblePatchTestServicesHandler(w http.ResponseWriter, r *http.Request)
}
type AddPatchTestRequest struct {
PatchTestID string `json:"patch_test_id"`
PatchTestID string `json:"patch_test_id" validate:"required"`
}
// POST /api/admin/users/{id}/patch-tests
@@ -674,6 +674,10 @@ func AddPatchTestHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "invalid request", http.StatusBadRequest)
return
}
if err := validators.Validate.Struct(&req); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
if req.PatchTestID == "" {
http.Error(w, "patch_test_id is required", http.StatusBadRequest)