diff options
| author | 2023-02-16 18:02:20 +0000 | |
|---|---|---|
| committer | 2023-02-16 18:02:20 +0000 | |
| commit | 675081e9d28ab7f072e82446a52a8bd26382ed66 (patch) | |
| tree | 45574a4245eb41b940fc241cdd6b560f10576686 /src | |
| parent | 059cf500e7cd98de88c59d6824354a3d2d87fc89 (diff) | |
| download | blossom-675081e9d28ab7f072e82446a52a8bd26382ed66.tar.gz blossom-675081e9d28ab7f072e82446a52a8bd26382ed66.tar.bz2 blossom-675081e9d28ab7f072e82446a52a8bd26382ed66.zip | |
improve error handling
Diffstat (limited to '')
| -rw-r--r-- | src/error.rs | 18 | ||||
| -rw-r--r-- | src/main.rs | 11 | ||||
| -rw-r--r-- | src/scrobbles.rs | 2 | 
3 files changed, 16 insertions, 15 deletions
| diff --git a/src/error.rs b/src/error.rs index 38802d3..890a148 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,29 +1,27 @@ -use rocket::Responder; +use rocket::{http::Status, Responder};  #[derive(Responder, Debug)]  pub enum BlossomError { -    #[response(status = 500)] -    Reqwest(&'static str, #[response(ignore)] reqwest::Error), -    #[response(status = 500)] -    ListenBrainz(&'static str, #[response(ignore)] listenbrainz::Error), -    #[response(status = 500)] -    Skinnyverse(&'static str, #[response(ignore)] mastodon_async::Error), +    Reqwest(Status, #[response(ignore)] reqwest::Error), +    ListenBrainz(Status, #[response(ignore)] listenbrainz::Error), +    Skinnyverse(Status, #[response(ignore)] mastodon_async::Error), +    Unimplemented(Status),  }  impl From<reqwest::Error> for BlossomError {      fn from(e: reqwest::Error) -> Self { -        BlossomError::Reqwest("reqwest error", e) +        BlossomError::Reqwest(Status::new(500), e)      }  }  impl From<listenbrainz::Error> for BlossomError {      fn from(e: listenbrainz::Error) -> Self { -        BlossomError::ListenBrainz("listenbrainz error", e) +        BlossomError::ListenBrainz(Status::new(500), e)      }  }  impl From<mastodon_async::Error> for BlossomError {      fn from(e: mastodon_async::Error) -> Self { -        BlossomError::Skinnyverse("skinnyverse error", e) +        BlossomError::Skinnyverse(Status::new(500), e)      }  } diff --git a/src/main.rs b/src/main.rs index ba7bed0..1850b01 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,7 +20,10 @@ extern crate rocket;  async fn home(clients: &State<Clients>) -> Result<Template, BlossomError> {      Ok(Template::render(          "home", -        context! { is_live: false, listenbrainz: scrobbles::get_now_playing(&clients.listenbrainz).await?, skweets: skweets::get_recents(&clients.skinnyverse).await? }, +        context! { +        is_live: false, +        listenbrainz: scrobbles::get_now_playing(&clients.listenbrainz).await.unwrap_or_default(), +        skweets: skweets::get_recents(&clients.skinnyverse).await.unwrap_or_default() },      ))  } @@ -31,7 +34,7 @@ async fn contact() -> Template {  #[get("/plants")]  async fn plants() -> Result<Template, BlossomError> { -    todo!() +    Err(BlossomError::Unimplemented(Status::NotImplemented))  }  #[catch(default)] @@ -44,7 +47,7 @@ fn catcher(status: Status, req: &Request) -> Template {      } else if status.code == 501 {          message = "it looks like this is not yet here!!!";      } else { -        message = "there was an error"; +        message = "idk i got bored";      }      let status = format!("{}", status);      Template::render( @@ -66,7 +69,7 @@ async fn main() -> Result<(), rocket::Error> {          .attach(Template::custom(|engines| {              engines.tera.autoescape_on(vec![]);          })) -        .mount("/", routes![home, contact]) +        .mount("/", routes![home, contact, plants])          .register("/", catchers![catcher])          .mount("/", FileServer::from(relative!("static")))          .launch() diff --git a/src/scrobbles.rs b/src/scrobbles.rs index 07b1ad1..a6d4a54 100644 --- a/src/scrobbles.rs +++ b/src/scrobbles.rs @@ -10,7 +10,7 @@ pub async fn get_now_playing(      Ok(NowPlayingData::new(playingnow))  } -#[derive(Serialize, Deserialize)] +#[derive(Serialize, Deserialize, Default)]  pub struct NowPlayingData {      pub is_scrobbling: bool,      pub song: Option<String>, | 
