aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@blos.sm>2023-02-16 18:02:20 +0000
committerLibravatar cel 🌸 <cel@blos.sm>2023-02-16 18:02:20 +0000
commit675081e9d28ab7f072e82446a52a8bd26382ed66 (patch)
tree45574a4245eb41b940fc241cdd6b560f10576686
parent059cf500e7cd98de88c59d6824354a3d2d87fc89 (diff)
downloadblossom-675081e9d28ab7f072e82446a52a8bd26382ed66.tar.gz
blossom-675081e9d28ab7f072e82446a52a8bd26382ed66.tar.bz2
blossom-675081e9d28ab7f072e82446a52a8bd26382ed66.zip
improve error handling
-rw-r--r--src/error.rs18
-rw-r--r--src/main.rs11
-rw-r--r--src/scrobbles.rs2
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>,