Skip to content

Commit 939313b

Browse files
author
novnc
committed
refactor: enhance error handling in storePasteAndRespond for validation errors
1 parent 122b54c commit 939313b

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

handlers/upload/handler.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,17 @@ func (h *Handler) readUploadContent(c *gin.Context) ([]byte, string, error) {
8080
func (h *Handler) storePasteAndRespond(c *gin.Context, req services.CreatePasteRequest) {
8181
resp, err := h.service.CreatePaste(req)
8282
if err != nil {
83+
// Check if this is a validation error (should return 400) or server error (500)
84+
errMsg := err.Error()
85+
if strings.Contains(errMsg, "slug already exists") ||
86+
strings.Contains(errMsg, "invalid slug format") ||
87+
strings.Contains(errMsg, "X-TTL must be between") {
88+
c.Header("Content-Type", "application/json; charset=utf-8")
89+
c.JSON(http.StatusBadRequest, gin.H{"error": errMsg})
90+
return
91+
}
92+
// For other errors, return 500
93+
log.Printf("[ERROR] Failed to create paste: %v", err)
8394
c.Header("Content-Type", "application/json; charset=utf-8")
8495
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create paste"})
8596
return

0 commit comments

Comments
 (0)