aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/ui/assets.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-01-20 00:50:20 +0100
committermetamuffin <metamuffin@disroot.org>2024-01-20 00:50:20 +0100
commit46c251655db7bb3d9aa814b1a5dde85336b0b9b1 (patch)
treeab0696f2c92e8854ce6aa0737877cc15184bd8b6 /server/src/routes/ui/assets.rs
parent1c37d32a0985ff7390313833345b9299f9f0b196 (diff)
downloadjellything-46c251655db7bb3d9aa814b1a5dde85336b0b9b1.tar
jellything-46c251655db7bb3d9aa814b1a5dde85336b0b9b1.tar.bz2
jellything-46c251655db7bb3d9aa814b1a5dde85336b0b9b1.tar.zst
replace sled with redb
Diffstat (limited to 'server/src/routes/ui/assets.rs')
-rw-r--r--server/src/routes/ui/assets.rs25
1 files changed, 14 insertions, 11 deletions
diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs
index ddbc2ee..b1a13da 100644
--- a/server/src/routes/ui/assets.rs
+++ b/server/src/routes/ui/assets.rs
@@ -4,12 +4,15 @@
Copyright (C) 2023 metamuffin <metamuffin.org>
*/
use crate::{
- database::Database,
+ database::DataAcid,
routes::ui::{account::session::Session, error::MyResult, CacheControlFile},
};
use anyhow::{anyhow, Context};
use jellybase::{
- cache::async_cache_file, federation::Federation, permission::NodePermissionExt,
+ cache::async_cache_file,
+ database::{TableExt, T_NODE},
+ federation::Federation,
+ permission::NodePermissionExt,
AssetLocationExt,
};
pub use jellycommon::AssetRole;
@@ -22,14 +25,13 @@ use tokio::fs::File;
#[get("/n/<id>/asset?<role>&<width>")]
pub async fn r_item_assets(
session: Session,
- db: &State<Database>,
+ db: &State<DataAcid>,
id: &str,
role: AssetRole,
width: Option<usize>,
) -> MyResult<(ContentType, CacheControlFile)> {
- let node = db
- .node
- .get(&id.to_string())?
+ let node = T_NODE
+ .get(&db, id)?
.only_if_permitted(&session.user.permissions)
.ok_or(anyhow!("node does not exist"))?;
let mut asset = match role {
@@ -38,7 +40,9 @@ pub async fn r_item_assets(
};
if let None = asset {
if let Some(parent) = &node.public.path.last() {
- let parent = db.node.get(parent)?.ok_or(anyhow!("node does not exist"))?;
+ let parent = T_NODE
+ .get(&db, parent.as_str())?
+ .ok_or(anyhow!("node does not exist"))?;
asset = match role {
AssetRole::Backdrop => parent.private.backdrop,
AssetRole::Poster => parent.private.poster,
@@ -55,15 +59,14 @@ pub async fn r_item_assets(
#[get("/n/<id>/thumbnail?<t>&<width>")]
pub async fn r_node_thumbnail(
session: Session,
- db: &State<Database>,
+ db: &State<DataAcid>,
fed: &State<Federation>,
id: &str,
t: f64,
width: Option<usize>,
) -> MyResult<(ContentType, CacheControlFile)> {
- let node = db
- .node
- .get(&id.to_string())?
+ let node = T_NODE
+ .get(&db, id)?
.only_if_permitted(&session.user.permissions)
.ok_or(anyhow!("node does not exist"))?;