diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-27 19:25:11 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-27 19:25:11 +0200 |
commit | 11a585b3dbe620dcc8772e713b22f1d9ba80d598 (patch) | |
tree | 44f8d97137412aefc79a2425a489c34fa3e5f6c5 /server/src/routes/userdata.rs | |
parent | d871aa7c5bba49ff55170b5d2dac9cd440ae7170 (diff) | |
download | jellything-11a585b3dbe620dcc8772e713b22f1d9ba80d598.tar jellything-11a585b3dbe620dcc8772e713b22f1d9ba80d598.tar.bz2 jellything-11a585b3dbe620dcc8772e713b22f1d9ba80d598.tar.zst |
move files around
Diffstat (limited to 'server/src/routes/userdata.rs')
-rw-r--r-- | server/src/routes/userdata.rs | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/server/src/routes/userdata.rs b/server/src/routes/userdata.rs deleted file mode 100644 index 01776da..0000000 --- a/server/src/routes/userdata.rs +++ /dev/null @@ -1,95 +0,0 @@ -/* - This file is part of jellything (https://codeberg.org/metamuffin/jellything) - which is licensed under the GNU Affero General Public License (version 3); see /COPYING. - Copyright (C) 2025 metamuffin <metamuffin.org> -*/ -use super::ui::{account::session::Session, error::MyResult}; -use crate::routes::ui::node::rocket_uri_macro_r_library_node; -use jellybase::database::Database; -use jellycommon::{ - user::{NodeUserData, WatchedState}, - NodeID, -}; -use rocket::{ - form::Form, get, post, response::Redirect, serde::json::Json, FromForm, FromFormField, State, - UriDisplayQuery, -}; - -#[derive(Debug, FromFormField, UriDisplayQuery)] -pub enum UrlWatchedState { - None, - Watched, - Pending, -} - -#[get("/n/<id>/userdata")] -pub fn r_node_userdata( - session: Session, - db: &State<Database>, - id: NodeID, -) -> MyResult<Json<NodeUserData>> { - let u = db - .get_node_udata(id, &session.user.name)? - .unwrap_or_default(); - Ok(Json(u)) -} - -#[post("/n/<id>/watched?<state>")] -pub async fn r_node_userdata_watched( - session: Session, - db: &State<Database>, - id: NodeID, - state: UrlWatchedState, -) -> MyResult<Redirect> { - // TODO perm - db.update_node_udata(id, &session.user.name, |udata| { - udata.watched = match state { - UrlWatchedState::None => WatchedState::None, - UrlWatchedState::Watched => WatchedState::Watched, - UrlWatchedState::Pending => WatchedState::Pending, - }; - Ok(()) - })?; - Ok(Redirect::found(rocket::uri!(r_library_node(id)))) -} - -#[derive(FromForm)] -pub struct UpdateRating { - #[field(validate = range(-10..=10))] - rating: i32, -} - -#[post("/n/<id>/update_rating", data = "<form>")] -pub async fn r_node_userdata_rating( - session: Session, - db: &State<Database>, - id: NodeID, - form: Form<UpdateRating>, -) -> MyResult<Redirect> { - // TODO perm - db.update_node_udata(id, &session.user.name, |udata| { - udata.rating = form.rating; - Ok(()) - })?; - Ok(Redirect::found(rocket::uri!(r_library_node(id)))) -} - -#[post("/n/<id>/progress?<t>")] -pub async fn r_node_userdata_progress( - session: Session, - db: &State<Database>, - id: NodeID, - t: f64, -) -> MyResult<()> { - // TODO perm - db.update_node_udata(id, &session.user.name, |udata| { - udata.watched = match udata.watched { - WatchedState::None | WatchedState::Pending | WatchedState::Progress(_) => { - WatchedState::Progress(t) - } - WatchedState::Watched => WatchedState::Watched, - }; - Ok(()) - })?; - Ok(()) -} |