From f73aa32549743b2967160d38c1622199c41524a4 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 29 Apr 2025 15:19:36 +0200 Subject: aaaaaaa --- server/src/logic/userdata.rs | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'server/src/logic/userdata.rs') diff --git a/server/src/logic/userdata.rs b/server/src/logic/userdata.rs index 8da6be9..25d3893 100644 --- a/server/src/logic/userdata.rs +++ b/server/src/logic/userdata.rs @@ -3,10 +3,12 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2025 metamuffin */ -use crate::ui::error::MyResult; +use crate::{helper::A, ui::error::MyResult}; use jellybase::database::Database; use jellycommon::{ - routes::u_node_id, user::{NodeUserData, WatchedState}, NodeID + routes::u_node_id, + user::{NodeUserData, WatchedState}, + NodeID, }; use jellylogic::session::Session; use rocket::{ @@ -23,25 +25,25 @@ pub enum UrlWatchedState { #[get("/n//userdata")] pub fn r_node_userdata( - session: Session, + session: A, db: &State, - id: NodeID, + id: A, ) -> MyResult> { let u = db - .get_node_udata(id, &session.user.name)? + .get_node_udata(id.0, &session.0.user.name)? .unwrap_or_default(); Ok(Json(u)) } #[post("/n//watched?")] pub async fn r_node_userdata_watched( - session: Session, + session: A, db: &State, - id: NodeID, + id: A, state: UrlWatchedState, ) -> MyResult { // TODO perm - db.update_node_udata(id, &session.user.name, |udata| { + db.update_node_udata(id.0, &session.0.user.name, |udata| { udata.watched = match state { UrlWatchedState::None => WatchedState::None, UrlWatchedState::Watched => WatchedState::Watched, @@ -49,7 +51,7 @@ pub async fn r_node_userdata_watched( }; Ok(()) })?; - Ok(Redirect::found(u_node_id(id))) + Ok(Redirect::found(u_node_id(id.0))) } #[derive(FromForm)] @@ -60,28 +62,28 @@ pub struct UpdateRating { #[post("/n//update_rating", data = "
")] pub async fn r_node_userdata_rating( - session: Session, + session: A, db: &State, - id: NodeID, + id: A, form: Form, ) -> MyResult { // TODO perm - db.update_node_udata(id, &session.user.name, |udata| { + db.update_node_udata(id.0, &session.0.user.name, |udata| { udata.rating = form.rating; Ok(()) })?; - Ok(Redirect::found(u_node_id(id))) + Ok(Redirect::found(u_node_id(id.0))) } #[post("/n//progress?")] pub async fn r_node_userdata_progress( - session: Session, + session: A, db: &State, - id: NodeID, + id: A, t: f64, ) -> MyResult<()> { // TODO perm - db.update_node_udata(id, &session.user.name, |udata| { + db.update_node_udata(id.0, &session.0.user.name, |udata| { udata.watched = match udata.watched { WatchedState::None | WatchedState::Pending | WatchedState::Progress(_) => { WatchedState::Progress(t) -- cgit v1.2.3-70-g09d2