aboutsummaryrefslogtreecommitdiff
path: root/server/src/logic/userdata.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-29 15:19:36 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-29 15:19:36 +0200
commitf73aa32549743b2967160d38c1622199c41524a4 (patch)
tree0fa290fbf9b14d7bfd3803f8cc4618c6c9829330 /server/src/logic/userdata.rs
parentf62c7f2a8cc143454779dc99334ca9fc80ddabd5 (diff)
downloadjellything-f73aa32549743b2967160d38c1622199c41524a4.tar
jellything-f73aa32549743b2967160d38c1622199c41524a4.tar.bz2
jellything-f73aa32549743b2967160d38c1622199c41524a4.tar.zst
aaaaaaa
Diffstat (limited to 'server/src/logic/userdata.rs')
-rw-r--r--server/src/logic/userdata.rs34
1 files changed, 18 insertions, 16 deletions
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 <metamuffin.org>
*/
-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/<id>/userdata")]
pub fn r_node_userdata(
- session: Session,
+ session: A<Session>,
db: &State<Database>,
- id: NodeID,
+ id: A<NodeID>,
) -> MyResult<Json<NodeUserData>> {
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/<id>/watched?<state>")]
pub async fn r_node_userdata_watched(
- session: Session,
+ session: A<Session>,
db: &State<Database>,
- id: NodeID,
+ id: A<NodeID>,
state: UrlWatchedState,
) -> MyResult<Redirect> {
// 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/<id>/update_rating", data = "<form>")]
pub async fn r_node_userdata_rating(
- session: Session,
+ session: A<Session>,
db: &State<Database>,
- id: NodeID,
+ id: A<NodeID>,
form: Form<UpdateRating>,
) -> MyResult<Redirect> {
// 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/<id>/progress?<t>")]
pub async fn r_node_userdata_progress(
- session: Session,
+ session: A<Session>,
db: &State<Database>,
- id: NodeID,
+ id: A<NodeID>,
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)