package httpapi import ( "context" "encoding/json" "net/http" "time" ) func contextWithTimeout(r *http.Request, timeout time.Duration) (context.Context, context.CancelFunc) { return context.WithTimeout(r.Context(), timeout) } func writeJSON(w http.ResponseWriter, status int, payload any) { w.Header().Set("Content-Type", "application/json; charset=utf-8") w.WriteHeader(status) _ = json.NewEncoder(w).Encode(payload) } func writeError(w http.ResponseWriter, status int, message string) { writeJSON(w, status, map[string]string{"error": message}) }