diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/controllers/posts_controller.rs | 6 | ||||
| -rw-r--r-- | src/main.rs | 3 | ||||
| -rw-r--r-- | src/models/post.rs | 7 | 
3 files changed, 15 insertions, 1 deletions
| diff --git a/src/controllers/posts_controller.rs b/src/controllers/posts_controller.rs index fde08a8..a8c5e1c 100644 --- a/src/controllers/posts_controller.rs +++ b/src/controllers/posts_controller.rs @@ -55,3 +55,9 @@ fn update(post: Form<::models::Post>, conn: utils::DbConn) -> Redirect {    ::models::Post::update(post.get(), conn);    Redirect::to("/")  } + +#[get("/<id>/delete", format = "text/html")] +fn delete(id: i32, conn: utils::DbConn) -> Redirect { +    ::models::Post::delete(id, conn); +    Redirect::to("/") +} diff --git a/src/main.rs b/src/main.rs index 4c05523..bdb8524 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,6 +39,7 @@ fn main() {                  posts_controller::create,                  posts_controller::show,                  posts_controller::edit, -                posts_controller::update]) +                posts_controller::update, +                posts_controller::delete])          .launch();  } diff --git a/src/models/post.rs b/src/models/post.rs index 922dbca..3dd0879 100644 --- a/src/models/post.rs +++ b/src/models/post.rs @@ -53,4 +53,11 @@ impl Post {              .execute(&*conn)              .expect("Error saving post.");      } + +    pub fn delete(post_id: i32, conn: utils::DbConn) { +        use ::schema::posts::dsl::*; +        diesel::delete(posts.filter(id.eq(post_id))) +            .execute(&*conn) +            .expect(&format!("Could not delete post with id {}", post_id)); +    }  } | 
