diff options
Diffstat (limited to 'server/src/routes/ui/node.rs')
-rw-r--r-- | server/src/routes/ui/node.rs | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/server/src/routes/ui/node.rs b/server/src/routes/ui/node.rs index 0dbb027..c055953 100644 --- a/server/src/routes/ui/node.rs +++ b/server/src/routes/ui/node.rs @@ -9,7 +9,7 @@ use super::{ sort::{filter_and_sort_nodes, NodeFilterSort, NodeFilterSortForm}, }; use crate::{ - database::Database, + database::DataAcid, routes::{ api::AcceptJson, ui::{ @@ -22,8 +22,12 @@ use crate::{ }, uri, }; -use anyhow::{anyhow, Context, Result}; -use jellybase::permission::NodePermissionExt; +use anyhow::{anyhow, Result}; +use chrono::NaiveDateTime; +use jellybase::{ + database::{TableExt, T_NODE, T_USER_NODE}, + permission::NodePermissionExt, +}; use jellycommon::{ user::{NodeUserData, WatchedState}, Chapter, MediaInfo, NodeKind, NodePublic, Rating, SourceTrackKind, @@ -40,21 +44,18 @@ pub fn r_library_node(id: String) { pub async fn r_library_node_filter<'a>( session: Session, id: &'a str, - db: &'a State<Database>, + db: &'a State<DataAcid>, aj: AcceptJson, filter: NodeFilterSort, ) -> Result<Either<DynLayoutPage<'a>, Json<NodePublic>>, MyError> { - let node = db - .node - .get(&id.to_string()) - .context("retrieving library node")? + let node = T_NODE + .get(&db, id)? .only_if_permitted(&session.user.permissions) .ok_or(anyhow!("node does not exist"))? .public; - let udata = db - .user_node - .get(&(session.user.name.clone(), id.to_string()))? + let udata = T_USER_NODE + .get(&db, &(session.user.name.as_str(), id))? .unwrap_or_default(); if *aj { @@ -192,7 +193,7 @@ markup::define! { p { @m.resolution_name() } } @if let Some(d) = &node.release_date { - p { @d.format("%Y-%m-%d").to_string() } + p { @NaiveDateTime::from_timestamp_millis(*d).unwrap().and_utc().to_string() } } @if !node.children.is_empty() { p { @format!("{} items", node.children.len()) } @@ -244,7 +245,7 @@ pub trait DatabaseNodeUserDataExt { session: &Session, ) -> Result<(String, NodePublic, NodeUserData)>; } -impl DatabaseNodeUserDataExt for Database { +impl DatabaseNodeUserDataExt for DataAcid { fn get_node_with_userdata( &self, id: &str, @@ -252,12 +253,12 @@ impl DatabaseNodeUserDataExt for Database { ) -> Result<(String, NodePublic, NodeUserData)> { Ok(( id.to_owned(), - self.node - .get(&id.to_owned())? + T_NODE + .get(self, id)? .ok_or(anyhow!("node does not exist: {id}"))? .public, - self.user_node - .get(&(session.user.name.to_owned(), id.to_owned()))? + T_USER_NODE + .get(self, &(session.user.name.as_str(), id))? .unwrap_or_default(), )) } |