julep2api / utils.go
pauper-tarot-chain's picture
Upload 10 files
9e48b2b verified
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
}