Add card support
This commit is contained in:
@@ -34,6 +34,7 @@ pub async fn http_serve(database: &Database, mpris_producer: Sender<(String, Str
|
||||
.route("/", get(root))
|
||||
.route("/rating/{rating}", get(cache_rating_only))
|
||||
.route("/userid/{user_id}", get(add_userid))
|
||||
.route("/usercard/{user_card}", get(add_userid_by_card))
|
||||
.route("/{user_id}/{rating}", get(add_rating))
|
||||
.with_state(shared_state);
|
||||
|
||||
@@ -92,3 +93,34 @@ async fn add_userid(Path(user_id): Path<i64>, State(shared): State<SharedState>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async fn add_userid_by_card(
|
||||
Path(user_card): Path<String>,
|
||||
State(shared): State<SharedState>,
|
||||
) -> Response {
|
||||
let mut mpris_rx = shared.mpris_sender.subscribe();
|
||||
|
||||
// Get the current interpret and track from the watch channel
|
||||
let (interpret, track) = (*mpris_rx.borrow_and_update()).clone();
|
||||
|
||||
let rating = shared.rating.load(Ordering::Relaxed);
|
||||
|
||||
let user_id = match shared.database.user_get_id(&user_card).await {
|
||||
Ok(id) => id,
|
||||
Err(e) => {
|
||||
return (StatusCode::BAD_REQUEST, e.to_string()).into_response();
|
||||
}
|
||||
};
|
||||
|
||||
match shared
|
||||
.database
|
||||
.user_add_rating(user_id, &interpret, &track, rating)
|
||||
.await
|
||||
{
|
||||
Ok(_) => (StatusCode::OK, "Done.").into_response(),
|
||||
Err(e) => {
|
||||
eprintln!("HTTP error: {e}");
|
||||
(StatusCode::BAD_REQUEST, e.to_string()).into_response()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user