diff options
author | metamuffin <metamuffin@disroot.org> | 2023-12-15 23:47:26 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-12-15 23:47:26 +0100 |
commit | 21b58037c69798e922c5512ea5380943781558ff (patch) | |
tree | 884b82ff80f37183c9775b7c468e6f6fb6da7614 /server/src/routes/progress.rs | |
parent | 69041b4a9de26719254ea4eff5555a079d5e7d55 (diff) | |
download | jellything-21b58037c69798e922c5512ea5380943781558ff.tar jellything-21b58037c69798e922c5512ea5380943781558ff.tar.bz2 jellything-21b58037c69798e922c5512ea5380943781558ff.tar.zst |
continue watching draft
Diffstat (limited to 'server/src/routes/progress.rs')
-rw-r--r-- | server/src/routes/progress.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/server/src/routes/progress.rs b/server/src/routes/progress.rs new file mode 100644 index 0000000..170ed97 --- /dev/null +++ b/server/src/routes/progress.rs @@ -0,0 +1,28 @@ +use std::collections::HashMap; + +use super::ui::{account::session::Session, error::MyResult}; +use jellybase::database::Database; +use rocket::{post, State}; + +#[post("/n/<id>/progress?<t>")] +pub async fn r_player_progress( + session: Session, + db: &State<Database>, + id: &str, + t: Option<f64>, +) -> MyResult<()> { + db.user_progess.fetch_and_update(&session.user.name, |p| { + let mut m = p.unwrap_or_else(|| HashMap::new()); + if let Some(t) = t { + m.insert(id.to_string(), t); + } else { + m.remove(&id.to_string()); + } + if m.is_empty() { + None + } else { + Some(m) + } + })?; + Ok(()) +} |