diff options
Diffstat (limited to 'rust/src')
-rw-r--r-- | rust/src/endpoints.rs | 9 | ||||
-rw-r--r-- | rust/src/entity_crud.rs | 29 | ||||
-rw-r--r-- | rust/src/errors.rs | 6 |
3 files changed, 19 insertions, 25 deletions
diff --git a/rust/src/endpoints.rs b/rust/src/endpoints.rs index 8ed428a7..77f70ce0 100644 --- a/rust/src/endpoints.rs +++ b/rust/src/endpoints.rs @@ -707,7 +707,7 @@ impl Api for Server { .transaction(|| { if Some(editor_id.clone()) != editor.editor_id { return Err( - FatcatError::OtherBadRequest("editor_id doesn't match".to_string()).into(), + FatcatError::BadRequest("editor_id doesn't match".to_string()).into(), ); } let auth_context = self.auth_confectionary.require_auth( @@ -972,10 +972,9 @@ impl Api for Server { .transaction(|| { let editgroup_id = FatcatId::from_str(&editgroup_id)?; if Some(editgroup_id.to_string()) != editgroup.editgroup_id { - return Err(FatcatError::OtherBadRequest( - "editgroup_id doesn't match".to_string(), - ) - .into()); + return Err( + FatcatError::BadRequest("editgroup_id doesn't match".to_string()).into(), + ); } let auth_context = self.auth_confectionary.require_auth( &conn, diff --git a/rust/src/entity_crud.rs b/rust/src/entity_crud.rs index b2ef6323..0b70d417 100644 --- a/rust/src/entity_crud.rs +++ b/rust/src/entity_crud.rs @@ -333,7 +333,7 @@ macro_rules! generic_db_create { ($ident_table: ident, $edit_table: ident) => { fn db_create(&self, conn: &DbConn, edit_context: &EditContext) -> Result<Self::EditRow> { if self.redirect.is_some() { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "can't create an entity that redirects from the start".to_string()).into()); } let rev_id = self.db_insert_rev(conn)?; @@ -361,7 +361,7 @@ macro_rules! generic_db_create_batch { models: &[&Self], ) -> Result<Vec<Self::EditRow>> { if models.iter().any(|m| m.redirect.is_some()) { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "can't create an entity that redirects from the start".to_string(), ) .into()); @@ -420,14 +420,14 @@ macro_rules! generic_db_update { if self.state.is_none() { if Some(ident.to_string()) == self.redirect { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "tried to redirect entity to itself".to_string()).into()); } // special case: redirect to another entity if let Some(ref redirect_ident) = self.redirect { let redirect_ident = FatcatId::from_str(&redirect_ident)?.to_uuid(); if Some(redirect_ident) == current.redirect_id { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "redundantly redirecting entity to it's current target currently isn't supported".to_string()).into()); } // TODO: if we get a diesel not-found here, should be a special error response? @@ -435,8 +435,7 @@ macro_rules! generic_db_update { if target.is_live != true { // there is no race condition on this check because WIP -> is_live=true is // a one-way operation - // XXX: - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "attempted to redirect to a WIP entity".to_string()).into()); } // Note: there is a condition where the target is already a redirect, but we @@ -458,7 +457,7 @@ macro_rules! generic_db_update { if let Some(ref rev_id) = self.revision { let rev_id = Uuid::from_str(&rev_id)?; if Some(rev_id) == current.rev_id { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "reverted entity to it's current state; this isn't currently supported".to_string()).into()); } let edit: Self::EditRow = insert_into($edit_table::table) @@ -661,7 +660,7 @@ macro_rules! generic_db_accept_edits_batch { .get_result(conn)?; if forward_recursive_redirects != 0 { // TODO: revert transaction? - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "one or more (forward) recurisve redirects".to_string(), ) .into()); @@ -680,7 +679,7 @@ macro_rules! generic_db_accept_edits_batch { .get_result(conn)?; if backward_recursive_redirects != 0 { // TODO: revert transaction? - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "one or more (backward) recurisve redirects".to_string(), ) .into()); @@ -855,7 +854,7 @@ impl EntityCrud for ContainerEntity { } if models.iter().any(|m| m.name.is_none()) { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "name is required for all Container entities".to_string(), ) .into()); @@ -966,7 +965,7 @@ impl EntityCrud for CreatorEntity { } if models.iter().any(|m| m.display_name.is_none()) { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "display_name is required for all Creator entities".to_string(), ) .into()); @@ -1494,7 +1493,7 @@ impl EntityCrud for WebcaptureEntity { } } if entity.timestamp.is_none() || entity.original_url.is_none() { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "timestamp and original_url are required for webcapture entities".to_string(), ) .into()); @@ -1703,7 +1702,7 @@ impl EntityCrud for ReleaseEntity { fn db_create(&self, conn: &DbConn, edit_context: &EditContext) -> Result<Self::EditRow> { if self.redirect.is_some() { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "can't create an entity that redirects from the start".to_string(), ) .into()); @@ -1721,7 +1720,7 @@ impl EntityCrud for ReleaseEntity { // This isn't the generic implementation because we need to create Work entities for each // of the release entities passed (at least in the common case) if models.iter().any(|m| m.redirect.is_some()) { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "can't create an entity that redirects from the start".to_string(), ) .into()); @@ -1948,7 +1947,7 @@ impl EntityCrud for ReleaseEntity { } if models.iter().any(|m| m.title.is_none()) { - return Err(FatcatError::OtherBadRequest( + return Err(FatcatError::BadRequest( "title is required for all Release entities".to_string(), ) .into()); diff --git a/rust/src/errors.rs b/rust/src/errors.rs index ec2b949b..08e79d51 100644 --- a/rust/src/errors.rs +++ b/rust/src/errors.rs @@ -93,11 +93,7 @@ pub enum FatcatError { #[fail(display = "unexpected internal error: {}", _0)] // Fmt, Io, Serde, InternalError(String), - - // TODO: backwards compat; need to refactor out - #[fail(display = "unexpected internal error: {}", _0)] - OtherBadRequest(String), // NOTE: this enum is not exhaustive and shouldn't be matched over! -} +} // NOTE: this enum is not exhaustive and shouldn't be matched over! impl Into<models::ErrorResponse> for FatcatError { /// Format an error as an API response (ErrorResponse model, used by all HTTP 4xx and 5xx |