2025-03-22 22:17:47 -04:00
|
|
|
pub mod auth;
|
|
|
|
pub mod misc;
|
2025-03-25 23:58:27 -04:00
|
|
|
pub mod profile;
|
2025-03-22 22:17:47 -04:00
|
|
|
|
|
|
|
use axum::{Router, routing::get};
|
2025-03-26 21:46:21 -04:00
|
|
|
use axum_extra::extract::CookieJar;
|
|
|
|
use serde::Deserialize;
|
|
|
|
use tetratto_core::{
|
|
|
|
DataManager,
|
|
|
|
model::{Error, auth::User},
|
|
|
|
};
|
|
|
|
|
|
|
|
use crate::{assets::initial_context, get_lang};
|
2025-03-22 22:17:47 -04:00
|
|
|
|
|
|
|
pub fn routes() -> Router {
|
|
|
|
Router::new()
|
|
|
|
// misc
|
|
|
|
.route("/", get(misc::index_request))
|
|
|
|
// auth
|
|
|
|
.route("/auth/register", get(auth::register_request))
|
|
|
|
.route("/auth/login", get(auth::login_request))
|
2025-03-25 23:58:27 -04:00
|
|
|
// profile
|
|
|
|
.route("/user/{username}", get(profile::posts_request))
|
2025-03-22 22:17:47 -04:00
|
|
|
}
|
2025-03-26 21:46:21 -04:00
|
|
|
|
|
|
|
pub fn render_error(
|
|
|
|
e: Error,
|
|
|
|
jar: &CookieJar,
|
|
|
|
data: &(DataManager, tera::Tera),
|
|
|
|
user: &Option<User>,
|
|
|
|
) -> String {
|
|
|
|
let lang = get_lang!(jar, data.0);
|
|
|
|
let mut context = initial_context(&data.0.0, lang, &user);
|
|
|
|
context.insert("error_text", &e.to_string());
|
|
|
|
data.1.render("misc/error.html", &mut context).unwrap()
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
pub struct PaginatedQuery {
|
|
|
|
#[serde(default)]
|
|
|
|
pub page: usize,
|
|
|
|
}
|