package handler import ( "encoding/json" "net/http" "strconv" "github.com/mizuchilabs/mantrae/internal/config" ) func ListErrors(a *config.App) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { q := a.Conn.GetQuery() errors, err := q.ListErrors(r.Context()) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } w.Header().Set("Content-Type", "application/json") if err := json.NewEncoder(w).Encode(errors); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } } } func GetErrorsByProfile(a *config.App) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { q := a.Conn.GetQuery() profile_id, err := strconv.ParseInt(r.PathValue("id"), 10, 64) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } errors, err := q.GetErrorsByProfile(r.Context(), profile_id) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } w.Header().Set("Content-Type", "application/json") if err := json.NewEncoder(w).Encode(errors); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } } } func DeleteErrorByID(a *config.App) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { q := a.Conn.GetQuery() error_id, err := strconv.ParseInt(r.PathValue("id"), 10, 64) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } err = q.DeleteErrorById(r.Context(), error_id) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } } } func DeleteErrorsByProfile(a *config.App) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { q := a.Conn.GetQuery() profile_id, err := strconv.ParseInt(r.PathValue("id"), 10, 64) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } err = q.DeleteErrorsByProfile(r.Context(), profile_id) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } } }