/* 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 */ use super::error::MyError; use crate::helper::{accept::AcceptJson, language::AcceptLanguage, A}; use jellycommon::api::ApiStatsResponse; use jellyimport::is_importing; use jellylogic::{session::Session, stats::stats, Database}; use jellyui::{ render_page, scaffold::{RenderInfo, SessionInfo}, stats::StatsPage, }; use rocket::{get, response::content::RawHtml, serde::json::Json, Either, State}; #[get("/stats")] pub fn r_stats( session: A, db: &State, aj: AcceptJson, lang: AcceptLanguage, ) -> Result, Json>, MyError> { let AcceptLanguage(lang) = lang; let r = stats(db, &session.0)?; Ok(if *aj { Either::Right(Json(r)) } else { Either::Left(RawHtml(render_page( &StatsPage { lang: &lang, r }, RenderInfo { importing: is_importing(), session: Some(SessionInfo { user: session.0.user, }), }, lang, ))) }) }