From bf2578d19a04adeb2438ba81280327e885c1ded9 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Thu, 11 Jan 2018 22:50:56 +0100 Subject: Move controller code to own module. --- src/controllers/mod.rs | 1 + src/controllers/posts_controller.rs | 57 +++++++++++++++++++++++++++++++++++++ src/main.rs | 11 +++++-- src/posts.rs | 57 ------------------------------------- 4 files changed, 67 insertions(+), 59 deletions(-) create mode 100644 src/controllers/mod.rs create mode 100644 src/controllers/posts_controller.rs delete mode 100644 src/posts.rs (limited to 'src') diff --git a/src/controllers/mod.rs b/src/controllers/mod.rs new file mode 100644 index 0000000..0a95bd5 --- /dev/null +++ b/src/controllers/mod.rs @@ -0,0 +1 @@ +pub mod posts_controller; diff --git a/src/controllers/posts_controller.rs b/src/controllers/posts_controller.rs new file mode 100644 index 0000000..fde08a8 --- /dev/null +++ b/src/controllers/posts_controller.rs @@ -0,0 +1,57 @@ +use rocket::request::Form; +use rocket::response::Redirect; +use utils; + +#[derive(BartDisplay)] +#[template = "templates/new_post.html"] +pub struct NewPostTemplate<'a> { + title: &'a str, + post: ::models::NewPost +} + +implement_responder_for!(NewPostTemplate<'a>); + +#[get("/new", format = "text/html")] +fn new<'a>(_conn: utils::DbConn) -> NewPostTemplate<'a> { + NewPostTemplate { title: "Bloggen", post: Default::default() } +} + +#[post("/create", data="")] +fn create(post: Form<::models::NewPost>, conn: utils::DbConn) -> Redirect { + ::models::Post::create(post.get(), conn); + Redirect::to("/") +} + +#[derive(BartDisplay)] +#[template = "templates/show_post.html"] +pub struct ShowPostTemplate { + post: ::models::Post +} + +implement_responder_for!(ShowPostTemplate); + +#[get("/", format = "text/html")] +fn show<'a>(id: i32, conn: utils::DbConn) -> ShowPostTemplate { + let p = ::models::Post::get(id, conn); + ShowPostTemplate { post: p } +} + +#[derive(BartDisplay)] +#[template = "templates/edit_post.html"] +pub struct EditPostTemplate { + post: ::models::Post +} + +implement_responder_for!(EditPostTemplate); + +#[get("//edit", format = "text/html")] +fn edit(id: i32, conn: utils::DbConn) -> EditPostTemplate { + let p = ::models::Post::get(id, conn); + EditPostTemplate { post: p } +} + +#[post("/update", data="")] +fn update(post: Form<::models::Post>, conn: utils::DbConn) -> Redirect { + ::models::Post::update(post.get(), conn); + Redirect::to("/") +} diff --git a/src/main.rs b/src/main.rs index 109d7d1..0bbdc2e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -17,7 +17,8 @@ use rocket_contrib::Json; #[macro_use] mod utils; mod models; mod schema; -mod posts; +mod controllers; +use controllers::posts_controller; #[derive(BartDisplay, Serialize)] #[template = "templates/index.html"] @@ -42,6 +43,12 @@ fn main() { rocket::ignite() .manage(utils::init_db_pool()) .mount("/", routes![index, index_json]) - .mount("/posts", routes![posts::new, posts::create, posts::show, posts::edit, posts::update]) + .mount("/posts", + routes![ + posts_controller::new, + posts_controller::create, + posts_controller::show, + posts_controller::edit, + posts_controller::update]) .launch(); } diff --git a/src/posts.rs b/src/posts.rs deleted file mode 100644 index fde08a8..0000000 --- a/src/posts.rs +++ /dev/null @@ -1,57 +0,0 @@ -use rocket::request::Form; -use rocket::response::Redirect; -use utils; - -#[derive(BartDisplay)] -#[template = "templates/new_post.html"] -pub struct NewPostTemplate<'a> { - title: &'a str, - post: ::models::NewPost -} - -implement_responder_for!(NewPostTemplate<'a>); - -#[get("/new", format = "text/html")] -fn new<'a>(_conn: utils::DbConn) -> NewPostTemplate<'a> { - NewPostTemplate { title: "Bloggen", post: Default::default() } -} - -#[post("/create", data="")] -fn create(post: Form<::models::NewPost>, conn: utils::DbConn) -> Redirect { - ::models::Post::create(post.get(), conn); - Redirect::to("/") -} - -#[derive(BartDisplay)] -#[template = "templates/show_post.html"] -pub struct ShowPostTemplate { - post: ::models::Post -} - -implement_responder_for!(ShowPostTemplate); - -#[get("/", format = "text/html")] -fn show<'a>(id: i32, conn: utils::DbConn) -> ShowPostTemplate { - let p = ::models::Post::get(id, conn); - ShowPostTemplate { post: p } -} - -#[derive(BartDisplay)] -#[template = "templates/edit_post.html"] -pub struct EditPostTemplate { - post: ::models::Post -} - -implement_responder_for!(EditPostTemplate); - -#[get("//edit", format = "text/html")] -fn edit(id: i32, conn: utils::DbConn) -> EditPostTemplate { - let p = ::models::Post::get(id, conn); - EditPostTemplate { post: p } -} - -#[post("/update", data="")] -fn update(post: Form<::models::Post>, conn: utils::DbConn) -> Redirect { - ::models::Post::update(post.get(), conn); - Redirect::to("/") -} -- cgit v1.2.3