Create a ParseEpisodeError and replace bail! invocations.

This commit is contained in:
Jordan Petridis 2018-02-05 18:51:21 +02:00
parent d0ae5a4198
commit 008f57bec4
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
4 changed files with 20 additions and 12 deletions

View File

@ -44,6 +44,8 @@ pub enum DataError {
status_code: hyper::StatusCode, status_code: hyper::StatusCode,
context: String, context: String,
}, },
#[fail(display = "Error occured while Parsing an Episode. Reason: {}", reason)]
ParseEpisodeError { reason: String, parent_id: i32 },
} }
impl From<RunMigrationsError> for DataError { impl From<RunMigrationsError> for DataError {

View File

@ -52,11 +52,11 @@ impl Feed {
info!("Indexing {} episodes.", insert.len()); info!("Indexing {} episodes.", insert.len());
if let Err(err) = dbqueries::index_new_episodes(insert.as_slice()) { if let Err(err) = dbqueries::index_new_episodes(insert.as_slice()) {
error!("Failed batch indexng, Fallign back to individual indexing."); error!("Failed batch indexng, Fallign back to individual indexing.");
error!("Error: {}", err); error!("{}", err);
insert.iter().for_each(|ep| { insert.iter().for_each(|ep| {
if let Err(err) = ep.index() { if let Err(err) = ep.index() {
error!("Failed to index episode: {:?}.", ep.title()); error!("Failed to index episode: {:?}.", ep.title());
error!("Error msg: {}", err); error!("{}", err);
}; };
}) })
} }
@ -73,7 +73,7 @@ impl Feed {
.for_each(|(ref ep, rowid)| { .for_each(|(ref ep, rowid)| {
if let Err(err) = ep.update(rowid) { if let Err(err) = ep.update(rowid) {
error!("Failed to index episode: {:?}.", ep.title()); error!("Failed to index episode: {:?}.", ep.title());
error!("Error msg: {}", err); error!("{}", err);
}; };
}) })
} }

View File

@ -184,9 +184,12 @@ impl PartialEq<EpisodeMinimal> for NewEpisodeMinimal {
impl NewEpisodeMinimal { impl NewEpisodeMinimal {
pub(crate) fn new(item: &rss::Item, parent_id: i32) -> Result<Self, DataError> { pub(crate) fn new(item: &rss::Item, parent_id: i32) -> Result<Self, DataError> {
if item.title().is_none() { if item.title().is_none() {
return Err(DataError::DiscountBail(format!( let err = DataError::ParseEpisodeError {
"No title specified for the item." reason: format!("No title specified for this Episode."),
))); parent_id,
};
return Err(err);
} }
let title = item.title().unwrap().trim().to_owned(); let title = item.title().unwrap().trim().to_owned();
@ -197,9 +200,12 @@ impl NewEpisodeMinimal {
} else if item.link().is_some() { } else if item.link().is_some() {
item.link().map(|s| url_cleaner(s)) item.link().map(|s| url_cleaner(s))
} else { } else {
return Err(DataError::DiscountBail(format!( let err = DataError::ParseEpisodeError {
"No url specified for the item." reason: format!("No url specified for the item."),
))); parent_id,
};
return Err(err);
}; };
// Default to rfc2822 represantation of epoch 0. // Default to rfc2822 represantation of epoch 0.

View File

@ -25,7 +25,7 @@ fn download_checker() -> Result<(), DataError> {
ep.set_local_uri(None); ep.set_local_uri(None);
if let Err(err) = ep.save() { if let Err(err) = ep.save() {
error!("Error while trying to update episode: {:#?}", ep); error!("Error while trying to update episode: {:#?}", ep);
error!("Error: {}", err); error!("{}", err);
}; };
}); });
@ -47,7 +47,7 @@ fn played_cleaner() -> Result<(), DataError> {
if now_utc > limit { if now_utc > limit {
if let Err(err) = delete_local_content(ep) { if let Err(err) = delete_local_content(ep) {
error!("Error while trying to delete file: {:?}", ep.local_uri()); error!("Error while trying to delete file: {:?}", ep.local_uri());
error!("Error: {}", err); error!("{}", err);
} else { } else {
info!("Episode {:?} was deleted succesfully.", ep.local_uri()); info!("Episode {:?} was deleted succesfully.", ep.local_uri());
}; };
@ -67,7 +67,7 @@ fn delete_local_content(ep: &mut EpisodeCleanerQuery) -> Result<(), DataError> {
ep.save()?; ep.save()?;
} else { } else {
error!("Error while trying to delete file: {}", uri); error!("Error while trying to delete file: {}", uri);
error!("Error: {}", res.unwrap_err()); error!("{}", res.unwrap_err());
}; };
} }
} else { } else {