Skip to content

Commit

Permalink
actix example bug fix (#2140)
Browse files Browse the repository at this point in the history
* bug fix

* fmt

---------

Co-authored-by: Chris Tsang <chris.2y3@outlook.com>
  • Loading branch information
ikka0426 and tyt2y3 committed Mar 10, 2024
1 parent d64b627 commit 763a3f9
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions examples/actix_example/api/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,24 +89,34 @@ async fn create(
.finish())
}

#[get("/{id}")]
#[get(r#"/{id:\d+}"#)]
async fn edit(data: web::Data<AppState>, id: web::Path<i32>) -> Result<HttpResponse, Error> {
let conn = &data.conn;
let template = &data.templates;
let id = id.into_inner();

let post: post::Model = Query::find_post_by_id(conn, id)
let post: Option<post::Model> = Query::find_post_by_id(conn, id)
.await
.expect("could not find post")
.unwrap_or_else(|| panic!("could not find post with id {id}"));
.expect("could not find post");

let mut ctx = tera::Context::new();
ctx.insert("post", &post);

let body = template
.render("edit.html.tera", &ctx)
.map_err(|_| error::ErrorInternalServerError("Template error"))?;
Ok(HttpResponse::Ok().content_type("text/html").body(body))
let body = match post {
Some(post) => {
ctx.insert("post", &post);

template
.render("edit.html.tera", &ctx)
.map_err(|_| error::ErrorInternalServerError("Template error"))
}
None => {
ctx.insert("uri", &format!("/{}", id));

template
.render("error/404.html.tera", &ctx)
.map_err(|_| error::ErrorInternalServerError("Template error"))
}
};
Ok(HttpResponse::Ok().content_type("text/html").body(body?))
}

#[post("/{id}")]
Expand Down

0 comments on commit 763a3f9

Please sign in to comment.