Delete post
This commit is contained in:
parent
c427e4e89b
commit
237dcaa6a9
@ -6,12 +6,12 @@ use actix_web::dev::ServiceResponse;
|
|||||||
use actix_web::http::StatusCode;
|
use actix_web::http::StatusCode;
|
||||||
use actix_web::middleware::errhandlers::{ErrorHandlerResponse, ErrorHandlers};
|
use actix_web::middleware::errhandlers::{ErrorHandlerResponse, ErrorHandlers};
|
||||||
use actix_web::{
|
use actix_web::{
|
||||||
error, get, middleware, post, web, App, Error, HttpRequest, HttpResponse, HttpServer, Result,
|
delete, error, get, guard, http, middleware, post, web, App, Error, HttpRequest, HttpResponse,
|
||||||
|
HttpServer, Result,
|
||||||
};
|
};
|
||||||
use listenfd::ListenFd;
|
use listenfd::ListenFd;
|
||||||
use sea_orm::entity::*;
|
use sea_orm::entity::*;
|
||||||
use sea_orm::query::*;
|
use sea_orm::query::*;
|
||||||
use sea_orm::DatabaseConnection;
|
|
||||||
use sea_orm::EntityTrait;
|
use sea_orm::EntityTrait;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use std::env;
|
use std::env;
|
||||||
@ -135,9 +135,26 @@ async fn update(
|
|||||||
Ok(HttpResponse::Found().header("location", "/").finish())
|
Ok(HttpResponse::Found().header("location", "/").finish())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[post("/delete/{id}")]
|
||||||
|
async fn delete(data: web::Data<AppState>, id: web::Path<i32>) -> Result<HttpResponse, Error> {
|
||||||
|
let conn = sea_orm::Database::connect(&data.db_url).await.unwrap();
|
||||||
|
|
||||||
|
let post: post::ActiveModel = Post::find_by_id(id.into_inner())
|
||||||
|
.one(&conn)
|
||||||
|
.await
|
||||||
|
.unwrap()
|
||||||
|
.unwrap()
|
||||||
|
.into();
|
||||||
|
|
||||||
|
post.delete(&conn).await.unwrap();
|
||||||
|
|
||||||
|
// Flash::success(Redirect::to("/"), "Post successfully deleted.")
|
||||||
|
Ok(HttpResponse::Found().header("location", "/").finish())
|
||||||
|
}
|
||||||
|
|
||||||
#[actix_web::main]
|
#[actix_web::main]
|
||||||
async fn main() -> std::io::Result<()> {
|
async fn main() -> std::io::Result<()> {
|
||||||
std::env::set_var("RUST_LOG", "actix_web=info");
|
std::env::set_var("RUST_LOG", "actix_web=debug");
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
// get env vars
|
// get env vars
|
||||||
@ -160,8 +177,8 @@ async fn main() -> std::io::Result<()> {
|
|||||||
templates: templates,
|
templates: templates,
|
||||||
})
|
})
|
||||||
.wrap(middleware::Logger::default()) // enable logger
|
.wrap(middleware::Logger::default()) // enable logger
|
||||||
.service(fs::Files::new("/static", "./static").show_files_listing())
|
|
||||||
.configure(init)
|
.configure(init)
|
||||||
|
.service(fs::Files::new("/static", "./static").show_files_listing())
|
||||||
});
|
});
|
||||||
|
|
||||||
server = match listenfd.take_tcp_listener(0)? {
|
server = match listenfd.take_tcp_listener(0)? {
|
||||||
@ -181,4 +198,5 @@ pub fn init(cfg: &mut web::ServiceConfig) {
|
|||||||
cfg.service(create);
|
cfg.service(create);
|
||||||
cfg.service(edit);
|
cfg.service(edit);
|
||||||
cfg.service(update);
|
cfg.service(update);
|
||||||
|
cfg.service(delete);
|
||||||
}
|
}
|
||||||
|
@ -38,9 +38,8 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="two columns">
|
<div class="two columns">
|
||||||
<form action="/{{ post.id }}" method="post">
|
<form action="/delete/{{ post.id }}" method="post">
|
||||||
<div class="two columns">
|
<div class="two columns">
|
||||||
<input type="hidden" name="_method" value="delete" />
|
|
||||||
<input id="delete-button" type="submit" value="delete post" />
|
<input id="delete-button" type="submit" value="delete post" />
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user