refactor(server): final writeErr migration + ErrNotFound aliases (T3c)
This commit is contained in:
+13
-12
@@ -8,6 +8,7 @@ import (
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
|
||||
"git.fabledsword.com/bvandeusen/minstrel/internal/apierror"
|
||||
"git.fabledsword.com/bvandeusen/minstrel/internal/auth"
|
||||
"git.fabledsword.com/bvandeusen/minstrel/internal/db/dbq"
|
||||
"git.fabledsword.com/bvandeusen/minstrel/internal/lidarrquarantine"
|
||||
@@ -45,29 +46,29 @@ type flagBody struct {
|
||||
func (h *handlers) handleFlag(w http.ResponseWriter, r *http.Request) {
|
||||
user, ok := auth.UserFromContext(r.Context())
|
||||
if !ok {
|
||||
writeErr(w, http.StatusUnauthorized, "unauthorized", "authentication required")
|
||||
writeErr(w, apierror.ErrUnauthorized)
|
||||
return
|
||||
}
|
||||
var body flagBody
|
||||
if err := json.NewDecoder(r.Body).Decode(&body); err != nil {
|
||||
writeErr(w, http.StatusBadRequest, "bad_request", "invalid JSON body")
|
||||
writeErr(w, apierror.BadRequest("bad_request", "invalid JSON body"))
|
||||
return
|
||||
}
|
||||
trackID, ok := parseUUID(body.TrackID)
|
||||
if !ok {
|
||||
writeErr(w, http.StatusBadRequest, "bad_request", "invalid track id")
|
||||
writeErr(w, apierror.BadRequest("bad_request", "invalid track id"))
|
||||
return
|
||||
}
|
||||
row, err := h.lidarrQuarantine.Flag(r.Context(), user.ID, trackID, body.Reason, body.Notes)
|
||||
if err != nil {
|
||||
switch {
|
||||
case errors.Is(err, lidarrquarantine.ErrBadReason):
|
||||
writeErr(w, http.StatusBadRequest, "bad_reason", "invalid reason")
|
||||
writeErr(w, apierror.BadRequest("bad_reason", "invalid reason"))
|
||||
case errors.Is(err, lidarrquarantine.ErrTrackNotFound):
|
||||
writeErr(w, http.StatusNotFound, "track_not_found", "track does not exist")
|
||||
writeErr(w, &apierror.Error{Status: 404, Code: "track_not_found", Message: "track does not exist"})
|
||||
default:
|
||||
h.logger.Error("api: flag", "err", err)
|
||||
writeErr(w, http.StatusInternalServerError, "server_error", "flag failed")
|
||||
writeErr(w, apierror.InternalMsg("flag failed", err))
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -78,21 +79,21 @@ func (h *handlers) handleFlag(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *handlers) handleUnflag(w http.ResponseWriter, r *http.Request) {
|
||||
user, ok := auth.UserFromContext(r.Context())
|
||||
if !ok {
|
||||
writeErr(w, http.StatusUnauthorized, "unauthorized", "authentication required")
|
||||
writeErr(w, apierror.ErrUnauthorized)
|
||||
return
|
||||
}
|
||||
id, ok := parseUUID(chi.URLParam(r, "track_id"))
|
||||
if !ok {
|
||||
writeErr(w, http.StatusBadRequest, "bad_request", "invalid track id")
|
||||
writeErr(w, apierror.BadRequest("bad_request", "invalid track id"))
|
||||
return
|
||||
}
|
||||
if err := h.lidarrQuarantine.Unflag(r.Context(), user.ID, id); err != nil {
|
||||
if errors.Is(err, lidarrquarantine.ErrQuarantineNotFound) {
|
||||
writeErr(w, http.StatusNotFound, "quarantine_not_found", "no quarantine for that track")
|
||||
writeErr(w, &apierror.Error{Status: 404, Code: "quarantine_not_found", Message: "no quarantine for that track"})
|
||||
return
|
||||
}
|
||||
h.logger.Error("api: unflag", "err", err)
|
||||
writeErr(w, http.StatusInternalServerError, "server_error", "unflag failed")
|
||||
writeErr(w, apierror.InternalMsg("unflag failed", err))
|
||||
return
|
||||
}
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
@@ -119,13 +120,13 @@ type quarantineMineView struct {
|
||||
func (h *handlers) handleListMyQuarantine(w http.ResponseWriter, r *http.Request) {
|
||||
user, ok := auth.UserFromContext(r.Context())
|
||||
if !ok {
|
||||
writeErr(w, http.StatusUnauthorized, "unauthorized", "authentication required")
|
||||
writeErr(w, apierror.ErrUnauthorized)
|
||||
return
|
||||
}
|
||||
rows, err := h.lidarrQuarantine.ListMine(r.Context(), user.ID)
|
||||
if err != nil {
|
||||
h.logger.Error("api: list mine", "err", err)
|
||||
writeErr(w, http.StatusInternalServerError, "server_error", "list failed")
|
||||
writeErr(w, apierror.InternalMsg("list failed", err))
|
||||
return
|
||||
}
|
||||
out := make([]quarantineMineView, 0, len(rows))
|
||||
|
||||
Reference in New Issue
Block a user