aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/userdata.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-27 19:25:11 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-27 19:25:11 +0200
commit11a585b3dbe620dcc8772e713b22f1d9ba80d598 (patch)
tree44f8d97137412aefc79a2425a489c34fa3e5f6c5 /server/src/routes/userdata.rs
parentd871aa7c5bba49ff55170b5d2dac9cd440ae7170 (diff)
downloadjellything-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.rs95
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(())
-}