diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2018-01-10 21:09:10 +0100 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2018-01-10 21:09:10 +0100 |
commit | 42413235bed80e9af6a9655dba504dbf2bdc572c (patch) | |
tree | 0902fef17fcab699652fc801f7ee36d36ad570a5 /src/posts.rs | |
parent | f6033128292bbd5838a6585a1214bc6c9275de38 (diff) | |
download | rocket-blog-42413235bed80e9af6a9655dba504dbf2bdc572c.tar.gz rocket-blog-42413235bed80e9af6a9655dba504dbf2bdc572c.tar.bz2 rocket-blog-42413235bed80e9af6a9655dba504dbf2bdc572c.zip |
Adding edit/update logic.
The model is not done yet, though. No net on the train.
Diffstat (limited to 'src/posts.rs')
-rw-r--r-- | src/posts.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/posts.rs b/src/posts.rs index a5e2524..859cce5 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -34,3 +34,23 @@ fn show<'a>(id: i32, conn: ::rocket_blog::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("/<id>/edit", format = "text/html")] +fn edit(id: i32, conn: ::rocket_blog::DbConn) -> EditPostTemplate { + let p = ::models::Post::get(id, conn); + EditPostTemplate { post: p } +} + +#[post("/update", data="<post>")] +fn update(post: Form<::models::Post>, conn: ::rocket_blog::DbConn) -> Redirect { + ::models::Post::update(post.get(), conn); + Redirect::to("/") +} |