summaryrefslogtreecommitdiff
path: root/src/api/pages.rs
blob: 4661b91241b95bbb6ba7b7704ae712e839777858 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
use axum::{
    response::{IntoResponse, Redirect, Response},
    routing::get,
    Router,
};

use crate::{
    console,
    types::{extract::AuthorizedUser, http::ResponseCode},
};

async fn root(user: Option<AuthorizedUser>) -> Response {
    if user.is_some() {
        Redirect::to("/home").into_response()
    } else {
        Redirect::to("/login").into_response()
    }
}

async fn login(user: Option<AuthorizedUser>) -> Response {
    if user.is_some() {
        Redirect::to("/home").into_response()
    } else {
        ResponseCode::Success.file("/login.html").await
    }
}

async fn home(user: Option<AuthorizedUser>) -> Response {
    if user.is_none() {
        Redirect::to("/login").into_response()
    } else {
        ResponseCode::Success.file("/home.html").await
    }
}

async fn people(user: Option<AuthorizedUser>) -> Response {
    if user.is_none() {
        Redirect::to("/login").into_response()
    } else {
        ResponseCode::Success.file("/people.html").await
    }
}

async fn profile(user: Option<AuthorizedUser>) -> 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 wordpress() -> 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))
}