File size: 1,077 Bytes
562a3ac 9e48b2b 562a3ac |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
package main
import (
"encoding/json"
"log/slog"
"net/http"
"github.com/google/uuid"
)
// writeJSONError sends a standard JSON error response.
func writeJSONError(w http.ResponseWriter, logger *slog.Logger, statusCode int, message string, errType *string, errCode *string, param *string) {
// CORRECTED: Explicitly add charset=utf-8
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(statusCode)
resp := ErrorResponse{
Error: APIError{
Message: message,
Type: errType,
Code: errCode,
Param: param,
},
}
if err := json.NewEncoder(w).Encode(resp); err != nil {
// If encoding fails, log it but we can't send another response
logger.Error("Failed to encode error response", "error", err)
}
}
// generateUUID creates a new UUID string.
func generateUUID() string {
return uuid.NewString()
}
// Helper function to get string pointer
func stringPtr(s string) *string {
if s == "" {
return nil // Don't return pointer to empty string unless intended
}
return &s
}
|