summaryrefslogtreecommitdiff
path: root/src/public/pages.rs
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/public/pages.rs
parentremove b64 imgs (diff)
downloadxssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.tar.gz
xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.tar.bz2
xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.zip
static serve refactor
Diffstat (limited to 'src/public/pages.rs')
-rw-r--r--src/public/pages.rs65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/public/pages.rs b/src/public/pages.rs
new file mode 100644
index 0000000..1614d81
--- /dev/null
+++ b/src/public/pages.rs
@@ -0,0 +1,65 @@
+use axum::{
+ response::{IntoResponse, Redirect, Response},
+ routing::get,
+ Router,
+};
+
+use crate::{
+ public::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 {
+ super::serve("/login.html").await
+ }
+}
+
+async fn home(_: Log) -> Response {
+ super::serve("/home.html").await
+}
+
+async fn people(_: Log) -> Response {
+ super::serve("/people.html").await
+}
+
+async fn profile(_: Log) -> Response {
+ super::serve("/profile.html").await
+}
+
+async fn console() -> Response {
+ console::generate().await
+}
+
+async fn admin() -> Response {
+ super::serve("/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))
+}