From 7e11b651edfe0c1f9b5efb333f4494fd7f3a1e1f Mon Sep 17 00:00:00 2001 From: Antoine Gersant Date: Sun, 28 Oct 2018 17:51:46 -0700 Subject: [PATCH] Fixed a bug where DB wasn't accessed with the correct type --- src/rocket_api.rs | 82 +++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/src/rocket_api.rs b/src/rocket_api.rs index ec4f3f4..353f602 100644 --- a/src/rocket_api.rs +++ b/src/rocket_api.rs @@ -80,7 +80,7 @@ impl<'a, 'r> FromRequest<'a, 'r> for AdminRights { type Error = (); fn from_request(request: &'a Request<'r>) -> request::Outcome { - let db = request.guard::>()?; + let db = request.guard::>>()?; match user::count::(&db) { Err(_) => return Outcome::Failure((Status::InternalServerError, ())), @@ -139,7 +139,7 @@ struct InitialSetup { } #[get("/initial_setup")] -fn initial_setup(db: State) -> Result, errors::Error> { +fn initial_setup(db: State>) -> Result, errors::Error> { let initial_setup = InitialSetup { has_any_users: user::count::(&db)? > 0, }; @@ -147,14 +147,14 @@ fn initial_setup(db: State) -> Result, errors::Error> { } #[get("/settings")] -fn get_settings(db: State, _admin_rights: AdminRights) -> Result, errors::Error> { +fn get_settings(db: State>, _admin_rights: AdminRights) -> Result, errors::Error> { let config = config::read::(&db)?; Ok(Json(config)) } #[put("/settings", data = "")] fn put_settings( - db: State, + db: State>, _admin_rights: AdminRights, config: Json, ) -> Result<(), errors::Error> { @@ -163,14 +163,14 @@ fn put_settings( } #[get("/preferences")] -fn get_preferences(db: State, auth: Auth) -> Result, errors::Error> { +fn get_preferences(db: State>, auth: Auth) -> Result, errors::Error> { let preferences = config::read_preferences::(&db, &auth.username)?; Ok(Json(preferences)) } #[put("/preferences", data = "")] fn put_preferences( - db: State, + db: State>, auth: Auth, preferences: Json, ) -> Result<(), errors::Error> { @@ -200,7 +200,7 @@ struct AuthOutput { #[post("/auth", data = "")] fn auth( - db: State, + db: State>, credentials: Json, mut cookies: Cookies, ) -> Result, errors::Error> { @@ -219,77 +219,77 @@ fn auth( #[get("/browse")] fn browse_root( - db: State, + db: State>, _auth: Auth, ) -> Result>, errors::Error> { - let result = index::browse(db.deref(), &PathBuf::new())?; + let result = index::browse(db.deref().deref(), &PathBuf::new())?; Ok(Json(result)) } #[get("/browse/")] fn browse( - db: State, + db: State>, _auth: Auth, path: VFSPathBuf, ) -> Result>, errors::Error> { - let result = index::browse(db.deref(), &path.into() as &PathBuf)?; + let result = index::browse(db.deref().deref(), &path.into() as &PathBuf)?; Ok(Json(result)) } #[get("/flatten")] -fn flatten_root(db: State, _auth: Auth) -> Result>, errors::Error> { - let result = index::flatten(db.deref(), &PathBuf::new())?; +fn flatten_root(db: State>, _auth: Auth) -> Result>, errors::Error> { + let result = index::flatten(db.deref().deref(), &PathBuf::new())?; Ok(Json(result)) } #[get("/flatten/")] fn flatten( - db: State, + db: State>, _auth: Auth, path: VFSPathBuf, ) -> Result>, errors::Error> { - let result = index::flatten(db.deref(), &path.into() as &PathBuf)?; + let result = index::flatten(db.deref().deref(), &path.into() as &PathBuf)?; Ok(Json(result)) } #[get("/random")] -fn random(db: State, _auth: Auth) -> Result>, errors::Error> { - let result = index::get_random_albums(db.deref(), 20)?; +fn random(db: State>, _auth: Auth) -> Result>, errors::Error> { + let result = index::get_random_albums(db.deref().deref(), 20)?; Ok(Json(result)) } #[get("/recent")] -fn recent(db: State, _auth: Auth) -> Result>, errors::Error> { - let result = index::get_recent_albums(db.deref(), 20)?; +fn recent(db: State>, _auth: Auth) -> Result>, errors::Error> { + let result = index::get_recent_albums(db.deref().deref(), 20)?; Ok(Json(result)) } #[get("/search")] fn search_root( - db: State, + db: State>, _auth: Auth, ) -> Result>, errors::Error> { - let result = index::search(db.deref(), "")?; + let result = index::search(db.deref().deref(), "")?; Ok(Json(result)) } #[get("/search/")] fn search( - db: State, + db: State>, _auth: Auth, query: String, ) -> Result>, errors::Error> { - let result = index::search(db.deref(), &query)?; + let result = index::search(db.deref().deref(), &query)?; Ok(Json(result)) } #[get("/serve/")] fn serve( - db: State, + db: State>, _auth: Auth, path: VFSPathBuf, ) -> Result, errors::Error> { - let db: &DB = db.deref(); + let db: &DB = db.deref().deref(); let vfs = db.get_vfs()?; let real_path = vfs.virtual_to_real(&path.into() as &PathBuf)?; @@ -310,10 +310,10 @@ struct ListPlaylistsEntry { #[get("/playlists")] fn list_playlists( - db: State, + db: State>, auth: Auth, ) -> Result>, errors::Error> { - let playlist_names = playlist::list_playlists(&auth.username, db.deref())?; + let playlist_names = playlist::list_playlists(&auth.username, db.deref().deref())?; let playlists: Vec = playlist_names .into_iter() .map(|p| ListPlaylistsEntry { name: p }) @@ -329,51 +329,51 @@ struct SavePlaylistInput { #[put("/playlist/", data = "")] fn save_playlist( - db: State, + db: State>, auth: Auth, name: String, playlist: Json, ) -> Result<(), errors::Error> { - playlist::save_playlist(&name, &auth.username, &playlist.tracks, db.deref())?; + playlist::save_playlist(&name, &auth.username, &playlist.tracks, db.deref().deref())?; Ok(()) } #[get("/playlist/")] fn read_playlist( - db: State, + db: State>, auth: Auth, name: String, ) -> Result>, errors::Error> { - let songs = playlist::read_playlist(&name, &auth.username, db.deref())?; + let songs = playlist::read_playlist(&name, &auth.username, db.deref().deref())?; Ok(Json(songs)) } #[delete("/playlist/")] -fn delete_playlist(db: State, auth: Auth, name: String) -> Result<(), errors::Error> { - playlist::delete_playlist(&name, &auth.username, db.deref())?; +fn delete_playlist(db: State>, auth: Auth, name: String) -> Result<(), errors::Error> { + playlist::delete_playlist(&name, &auth.username, db.deref().deref())?; Ok(()) } #[put("/lastfm/now_playing/")] -fn lastfm_now_playing(db: State, auth: Auth, path: VFSPathBuf) -> Result<(), errors::Error> { - lastfm::now_playing(db.deref(), &auth.username, &path.into() as &PathBuf)?; +fn lastfm_now_playing(db: State>, auth: Auth, path: VFSPathBuf) -> Result<(), errors::Error> { + lastfm::now_playing(db.deref().deref(), &auth.username, &path.into() as &PathBuf)?; Ok(()) } #[post("/lastfm/scrobble/")] -fn lastfm_scrobble(db: State, auth: Auth, path: VFSPathBuf) -> Result<(), errors::Error> { - lastfm::scrobble(db.deref(), &auth.username, &path.into() as &PathBuf)?; +fn lastfm_scrobble(db: State>, auth: Auth, path: VFSPathBuf) -> Result<(), errors::Error> { + lastfm::scrobble(db.deref().deref(), &auth.username, &path.into() as &PathBuf)?; Ok(()) } #[get("/lastfm/link?&")] fn lastfm_link( - db: State, + db: State>, auth: Auth, token: String, content: String, ) -> Result, errors::Error> { - lastfm::link(db.deref(), &auth.username, &token)?; + lastfm::link(db.deref().deref(), &auth.username, &token)?; // Percent decode let base64_content = match RawStr::from_str(&content).percent_decode() { @@ -397,7 +397,7 @@ fn lastfm_link( } #[delete("/lastfm/link")] -fn lastfm_unlink(db: State, auth: Auth) -> Result<(), errors::Error> { - lastfm::unlink(db.deref(), &auth.username)?; +fn lastfm_unlink(db: State>, auth: Auth) -> Result<(), errors::Error> { + lastfm::unlink(db.deref().deref(), &auth.username)?; Ok(()) }