aboutsummaryrefslogtreecommitdiff
path: root/src/ui.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui.rs')
-rw-r--r--src/ui.rs51
1 files changed, 41 insertions, 10 deletions
diff --git a/src/ui.rs b/src/ui.rs
index 0a054e7..def8d76 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -1,5 +1,4 @@
use rocket_contrib::templates::Template;
-use rocket::response::Redirect;
use crate::db::*;
@@ -10,20 +9,52 @@ pub fn index() -> Template {
}
#[catch(404)]
-pub fn not_found() -> Redirect {
- Redirect::to("/")
+pub fn not_found() -> Template {
+ Template::render("404", &())
}
// GET: Make a new thread.
-#[get("/post")]
-pub fn make_post() -> Template {
- Template::render("post", &())
-}
+// #[get("/post")]
+// pub fn make_post() -> Template {
+// Template::render("post", &())
+// }
// GET: Check out all the threads.
-#[get("/threads")]
-pub fn threads() -> Template {
- let context = get_threads().unwrap();
+// #[get("/threads")]
+// pub fn threads() -> Template {
+// let context = get_all_threads().unwrap();
+// let threads = serde_json::json!(&context);
+// Template::render("threads", threads)
+// }
+
+// GET: Check out all the boards.
+#[get("/boards")]
+pub fn boards() -> Template {
+ let context = get_boards().unwrap();
+ let threads = serde_json::json!(&context);
+ Template::render("boards", threads)
+}
+
+// GET: Check out all threads within a board.
+#[get("/board/<board>")]
+pub fn board(board: String) -> Template {
+ let boards = serde_json::json!(get_boards().unwrap());
+
+ let mut board_count: i32 = 0;
+ for i in boards.as_array().unwrap() {
+ if i.get("tag") == Some(&serde_json::json!(board)) {
+ board_count += 1;
+ }
+ }
+ if board_count == 0 { return Template::render("404", &()); }
+
+ // Return 404 if the board is not found.
+ // This doesn't work, but I kept it because I might try to fix it later.
+ // if !boards.as_array().unwrap().contains(&serde_json::json!(board)) {
+ // return Template::render("404", &());
+ // }
+
+ let context = get_threads(board).unwrap();
let threads = serde_json::json!(&context);
Template::render("threads", threads)
}