diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2018-12-20 19:05:05 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-12-20 19:05:05 -0800 |
commit | 3ec460d30c49bd579361e08be74863b5bcd96827 (patch) | |
tree | 62d4ecf06cbe3a1a1a1d57813689a612709eb011 /rust | |
parent | 358d0eeafb3e4567bb6f15dbac27711b45f4cfad (diff) | |
download | fatcat-3ec460d30c49bd579361e08be74863b5bcd96827.tar.gz fatcat-3ec460d30c49bd579361e08be74863b5bcd96827.zip |
allow deletion of redirect-to-deletion
Diffstat (limited to 'rust')
-rw-r--r-- | rust/src/api_entity_crud.rs | 2 | ||||
-rw-r--r-- | rust/src/database_models.rs | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/rust/src/api_entity_crud.rs b/rust/src/api_entity_crud.rs index 605c27ed..71c6c96e 100644 --- a/rust/src/api_entity_crud.rs +++ b/rust/src/api_entity_crud.rs @@ -289,7 +289,7 @@ macro_rules! generic_db_delete { ) .into()); } - if current.rev_id.is_none() { + if current.state()? == EntityState::Deleted { return Err(ErrorKind::InvalidEntityStateTransform( "entity was already deleted".to_string(), ) diff --git a/rust/src/database_models.rs b/rust/src/database_models.rs index 82088f28..d5daf9a4 100644 --- a/rust/src/database_models.rs +++ b/rust/src/database_models.rs @@ -11,6 +11,7 @@ use uuid::Uuid; // Ugh. I thought the whole point was to *not* do this, but: // https://github.com/diesel-rs/diesel/issues/1589 +#[derive(Clone, Copy, Debug, PartialEq)] pub enum EntityState { WorkInProgress, Active(Uuid), @@ -113,7 +114,7 @@ macro_rules! entity_structs { (None, None) => Ok(EntityState::Deleted), (Some(redir), rev) => Ok(EntityState::Redirect(redir, rev)), (None, Some(rev)) => Ok(EntityState::Active(rev)), - _ => bail!("Invalid EntityIdentRow state"), + //_ => bail!("Invalid EntityIdentRow state"), } } } |