feat: mark album as various artists

This commit is contained in:
Gabe Farrell 2025-06-15 22:26:17 -04:00
parent dc5dcbd474
commit 57cc60534d
8 changed files with 168 additions and 24 deletions

View file

@ -131,3 +131,46 @@ func MergeArtistsHandler(store db.DB) http.HandlerFunc {
w.WriteHeader(http.StatusNoContent)
}
}
func UpdateAlbumHandler(store db.DB) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
l := logger.FromContext(ctx)
l.Debug().Msg("UpdateAlbumHandler: Received request")
idStr := r.URL.Query().Get("id")
id, err := strconv.Atoi(idStr)
valStr := r.URL.Query().Get("is_various_artists")
var variousArists bool
var updateVariousArtists = false
if strings.ToLower(valStr) == "true" {
variousArists = true
updateVariousArtists = true
} else if strings.ToLower(valStr) == "false" {
variousArists = false
updateVariousArtists = true
}
if err != nil {
l.Debug().AnErr("error", err).Msg("UpdateAlbumHandler: Invalid id parameter")
utils.WriteError(w, "id is invalid", http.StatusBadRequest)
return
}
err = store.UpdateAlbum(ctx, db.UpdateAlbumOpts{
ID: int32(id),
VariousArtistsUpdate: updateVariousArtists,
VariousArtistsValue: variousArists,
})
if err != nil {
l.Debug().AnErr("error", err).Msg("UpdateAlbumHandler: Failed to update album")
utils.WriteError(w, "failed to update album", http.StatusBadRequest)
return
}
l.Debug().Msg("UpdateAlbumHandler: Successfully updated album")
w.WriteHeader(http.StatusNoContent)
}
}

View file

@ -70,6 +70,7 @@ func bindRoutes(
r.Group(func(r chi.Router) {
r.Use(middleware.ValidateSession(db))
r.Post("/replace-image", handlers.ReplaceImageHandler(db))
r.Patch("/album", handlers.UpdateAlbumHandler(db))
r.Post("/merge/tracks", handlers.MergeTracksHandler(db))
r.Post("/merge/albums", handlers.MergeReleaseGroupsHandler(db))
r.Post("/merge/artists", handlers.MergeArtistsHandler(db))