|
|
package main
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
"log/slog"
|
|
|
"net/http"
|
|
|
|
|
|
"github.com/google/uuid"
|
|
|
)
|
|
|
|
|
|
|
|
|
func writeJSONError(w http.ResponseWriter, logger *slog.Logger, statusCode int, message string, errType *string, errCode *string, param *string) {
|
|
|
|
|
|
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 {
|
|
|
|
|
|
logger.Error("Failed to encode error response", "error", err)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
func generateUUID() string {
|
|
|
return uuid.NewString()
|
|
|
}
|
|
|
|
|
|
|
|
|
func stringPtr(s string) *string {
|
|
|
if s == "" {
|
|
|
return nil
|
|
|
}
|
|
|
return &s
|
|
|
}
|
|
|
|