diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2021-08-24 23:03:01 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2021-08-24 23:03:01 +0200 |
commit | 94c4261d7733589a5e5616489ed3d3e9562a9e5b (patch) | |
tree | cecb7ba67387674e70e138047d8d9a74fb605eb2 /src/controllers/film.rs | |
parent | 5c092e52767e62987ef0294cde1ce40905fc5199 (diff) | |
download | ramaskrik-social-94c4261d7733589a5e5616489ed3d3e9562a9e5b.tar.gz ramaskrik-social-94c4261d7733589a5e5616489ed3d3e9562a9e5b.tar.bz2 ramaskrik-social-94c4261d7733589a5e5616489ed3d3e9562a9e5b.zip |
Upgrade to use Rocket 0.5.0-rc.1
Diffstat (limited to 'src/controllers/film.rs')
-rw-r--r-- | src/controllers/film.rs | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/controllers/film.rs b/src/controllers/film.rs index f407a4b..4a3dfa1 100644 --- a/src/controllers/film.rs +++ b/src/controllers/film.rs @@ -22,37 +22,35 @@ use crate::{ }; use rocket::{get, post}; -use rocket::request::{Form, FromForm}; +use rocket::form::{Form, FromForm}; +use rocket::http::Status; use rocket::response::Redirect; -use rocket_contrib::{ - json::Json, - templates::Template, -}; +use rocket::serde::json::Json; +use rocket_dyn_templates::Template; use serde::Serialize; use std::collections::HashMap; -use std::error::Error; use std::result::Result; #[get("/", format = "application/json", rank = 1)] -pub fn get_films_json(db: db::Connection) -> Json<Vec<models::Film>> { - Json(db.get_films().unwrap()) +pub async fn get_films_json(db: db::Connection) -> Json<Vec<models::Film>> { + Json(db.get_films().await.unwrap()) } #[get("/", rank = 2)] -pub fn list_films(db: db::Connection) -> Result<Template, Box<dyn Error>> { +pub async fn list_films(db: db::Connection) -> Result<Template, Status> { #[derive(Serialize)] struct Context { films: Vec<models::Film>, } - let ctx = Context { films: db.get_films()? }; + let ctx = Context { films: db.get_films().await.map_err(|_| Status::InternalServerError)? }; Ok(Template::render("film/list", &ctx)) } #[get("/new")] -pub fn new_film() -> Result<Template, Box<dyn Error>> { +pub fn new_film() -> Template { let ctx: HashMap<String, String> = HashMap::new(); - Ok(Template::render("film/new", &ctx)) + Template::render("film/new", &ctx) } #[derive(FromForm)] @@ -62,7 +60,7 @@ pub struct NewFilmForm { } #[post("/", format = "application/x-www-form-urlencoded", data = "<film>")] -pub fn create_film(db: db::Connection, film: Form<NewFilmForm>) -> Result<Redirect, Box<dyn Error>> { - db.create_film(&film.title, &film.url)?; +pub async fn create_film(db: db::Connection, film: Form<NewFilmForm>) -> Result<Redirect, Status> { + db.create_film(film.title.to_owned(), film.url.to_owned()).await.map_err(|_| Status::InternalServerError)?; Ok(Redirect::to("films")) } |