summaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2023-02-01 20:34:22 -0500
committerTyler Murphy <tylermurphy534@gmail.com>2023-02-01 20:34:22 -0500
commit2026a8f4579b1db0f6e5e7b11ac33c13969adb6c (patch)
treedaa13419b7227462775e325a4f5f60f2ed33c1da /src/api
parentremove b64 imgs (diff)
downloadxssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.tar.gz
xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.tar.bz2
xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.zip
static serve refactor
Diffstat (limited to 'src/api')
-rw-r--r--src/api/admin.rs3
-rw-r--r--src/api/image.rs54
-rw-r--r--src/api/mod.rs19
-rw-r--r--src/api/pages.rs77
-rw-r--r--src/api/users.rs8
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() {