summaryrefslogtreecommitdiff
path: root/src/public/pages.rs
diff options
context:
space:
mode:
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))
+}