diff options
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/admin.rs | 3 | ||||
-rw-r--r-- | src/api/image.rs | 54 | ||||
-rw-r--r-- | src/api/mod.rs | 19 | ||||
-rw-r--r-- | src/api/pages.rs | 77 | ||||
-rw-r--r-- | src/api/users.rs | 8 |
5 files changed, 18 insertions, 143 deletions
diff --git a/src/api/admin.rs b/src/api/admin.rs index 7de5fc0..a23d20f 100644 --- a/src/api/admin.rs +++ b/src/api/admin.rs @@ -5,7 +5,8 @@ use serde::Deserialize; use tower_cookies::{Cookie, Cookies}; use crate::{ - admin, database, + database, + public::admin, types::{ extract::{AdminUser, Check, CheckResult, Json}, http::ResponseCode, diff --git a/src/api/image.rs b/src/api/image.rs deleted file mode 100644 index 84eccc7..0000000 --- a/src/api/image.rs +++ /dev/null @@ -1,54 +0,0 @@ -use axum::{extract::Query, response::Response, routing::get, Router, http::StatusCode}; -use serde::Deserialize; - -use crate::types::http::ResponseCode; - - - -#[derive(Deserialize)] -struct AvatarRequest { - user_id: u64, -} - -async fn avatar(params: Option<Query<AvatarRequest>>) -> Response { - - let Some(params) = params else { - return ResponseCode::BadRequest.text("Missing query paramaters"); - }; - - let custom = format!("/image/custom/avatar/{}.png", params.user_id); - let default = format!("/image/default/{}.png", params.user_id % 25); - - let file = ResponseCode::Success.file(&custom).await; - if file.status() != StatusCode::OK { - return ResponseCode::Success.file(&default).await - } - file -} - -#[derive(Deserialize)] -struct BannerRequest { - user_id: u64, -} - -async fn banner(params: Option<Query<BannerRequest>>) -> Response { - - let Some(params) = params else { - return ResponseCode::BadRequest.text("Missing query paramaters"); - }; - - let custom = format!("/image/custom/banner/{}.png", params.user_id); - - let file = ResponseCode::Success.file(&custom).await; - if file.status() != StatusCode::OK { - return ResponseCode::NotFound.text("User does not have a custom banner") - } - file -} - - -pub fn router() -> Router { - Router::new() - .route("/avatar", get(avatar)) - .route("/banner", get(banner)) -} diff --git a/src/api/mod.rs b/src/api/mod.rs index adc19d7..9efcefc 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -1,14 +1,17 @@ use crate::types::extract::RouterURI; -use axum::{Extension, Router, BoxError, error_handling::HandleErrorLayer}; +use axum::{error_handling::HandleErrorLayer, BoxError, Extension, Router}; use tower::ServiceBuilder; -use tower_governor::{governor::GovernorConfigBuilder, GovernorLayer, errors::display_error, key_extractor::SmartIpKeyExtractor}; +use tower_governor::{ + errors::display_error, governor::GovernorConfigBuilder, key_extractor::SmartIpKeyExtractor, + GovernorLayer, +}; -pub mod admin; -pub mod auth; -pub mod pages; -pub mod posts; -pub mod users; -pub mod image; +mod admin; +mod auth; +mod posts; +mod users; + +pub use auth::RegistrationRequet; pub fn router() -> Router { let governor_conf = Box::new( diff --git a/src/api/pages.rs b/src/api/pages.rs deleted file mode 100644 index 4ed2e49..0000000 --- a/src/api/pages.rs +++ /dev/null @@ -1,77 +0,0 @@ -use axum::{ - response::{IntoResponse, Redirect, Response}, - routing::get, - Router, -}; - -use crate::{ - console, - types::{ - extract::{AuthorizedUser, Log}, - http::ResponseCode, - }, -}; - -async fn root(user: Option<AuthorizedUser>, _: Log) -> Response { - if user.is_some() { - Redirect::to("/home").into_response() - } else { - Redirect::to("/login").into_response() - } -} - -async fn login(user: Option<AuthorizedUser>, _: Log) -> Response { - if user.is_some() { - Redirect::to("/home").into_response() - } else { - ResponseCode::Success.file("/login.html").await - } -} - -async fn home(user: Option<AuthorizedUser>, _: Log) -> Response { - if user.is_none() { - Redirect::to("/login").into_response() - } else { - ResponseCode::Success.file("/home.html").await - } -} - -async fn people(user: Option<AuthorizedUser>, _: Log) -> Response { - if user.is_none() { - Redirect::to("/login").into_response() - } else { - ResponseCode::Success.file("/people.html").await - } -} - -async fn profile(user: Option<AuthorizedUser>, _: Log) -> Response { - if user.is_none() { - Redirect::to("/login").into_response() - } else { - ResponseCode::Success.file("/profile.html").await - } -} - -async fn console() -> Response { - console::generate().await -} - -async fn admin() -> Response { - ResponseCode::Success.file("/admin.html").await -} - -async fn wordpress(_: Log) -> Response { - ResponseCode::ImATeapot.text("Hello i am a teapot owo") -} - -pub fn router() -> Router { - Router::new() - .route("/", get(root)) - .route("/login", get(login)) - .route("/home", get(home)) - .route("/people", get(people)) - .route("/profile", get(profile)) - .route("/console", get(console)) - .route("/wp-admin", get(wordpress)) - .route("/admin", get(admin)) -} diff --git a/src/api/users.rs b/src/api/users.rs index 83a0d4e..e3c992b 100644 --- a/src/api/users.rs +++ b/src/api/users.rs @@ -3,7 +3,11 @@ use crate::types::{ http::ResponseCode, user::User, }; -use axum::{response::Response, routing::{post, put}, Router}; +use axum::{ + response::Response, + routing::{post, put}, + Router, +}; use serde::Deserialize; #[derive(Deserialize)] @@ -64,7 +68,6 @@ async fn load_self(AuthorizedUser(user): AuthorizedUser) -> Response { } async fn avatar(AuthorizedUser(user): AuthorizedUser, Png(img): Png) -> Response { - let path = format!("./public/image/custom/avatar/{}.png", user.user_id); if img.save(path).is_err() { @@ -75,7 +78,6 @@ async fn avatar(AuthorizedUser(user): AuthorizedUser, Png(img): Png) -> Response } async fn banner(AuthorizedUser(user): AuthorizedUser, Png(img): Png) -> Response { - let path = format!("./public/image/custom/banner/{}.png", user.user_id); if img.save(path).is_err() { |