/* 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) 2023 metamuffin */ use super::{account::session::Session, error::MyError, layout::DynLayoutPage, node::NodeCard}; use crate::database::Database; use anyhow::Context; use jellycommon::{Node, NodeKind}; use rocket::{get, State}; #[get("/items")] pub fn r_all_items(_sess: Session, db: &State) -> Result, MyError> { let items = db .node .iter() .map(|e| e.context("listing")) .collect::>>()? .into_iter() .filter(|(_, n)| matches!(n.public.kind, NodeKind::Movie | NodeKind::Series)) .collect::>(); Ok(super::layout::LayoutPage { title: "All Items".to_owned(), content: markup::new! { .page.dir { h1 { "All Items" } ul.children { @for (id, node) in &items { li {@NodeCard { id, node: &node.public }} }} } }, ..Default::default() }) }