Files
mantrae/internal/api/handler/errors.go
2025-06-16 16:26:55 +02:00

80 lines
2.1 KiB
Go

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
}
}
}