Added the import/cleanup functionality

This commit is contained in:
Connor Johnstone
2026-03-24 15:58:14 -04:00
parent 1431cd2fbc
commit 823ef15022
11 changed files with 392 additions and 27 deletions
+21 -3
View File
@@ -29,9 +29,13 @@ pub struct WatchTrackRequest {
}
pub fn configure(cfg: &mut web::ServiceConfig) {
cfg.service(web::resource("/tracks/watch").route(web::post().to(watch_track)))
.service(web::resource("/tracks").route(web::get().to(list_tracks)))
.service(web::resource("/tracks/{id}").route(web::get().to(get_track)));
cfg.service(
web::resource("/tracks/watch")
.route(web::post().to(watch_track))
.route(web::delete().to(unwatch_track)),
)
.service(web::resource("/tracks").route(web::get().to(list_tracks)))
.service(web::resource("/tracks/{id}").route(web::get().to(get_track)));
}
async fn list_tracks(
@@ -87,3 +91,17 @@ async fn watch_track(
"artist_name": entry.artist_name,
})))
}
async fn unwatch_track(
state: web::Data<AppState>,
session: Session,
body: web::Json<WatchTrackRequest>,
) -> Result<HttpResponse, ApiError> {
auth::require_auth(&session)?;
let mbid = body
.mbid
.as_deref()
.ok_or_else(|| ApiError::BadRequest("provide recording mbid".into()))?;
let removed = queries::wanted::remove_by_mbid(state.db.conn(), mbid).await?;
Ok(HttpResponse::Ok().json(serde_json::json!({"removed": removed})))
}