From 3ec460d30c49bd579361e08be74863b5bcd96827 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Thu, 20 Dec 2018 19:05:05 -0800 Subject: allow deletion of redirect-to-deletion --- rust/src/api_entity_crud.rs | 2 +- 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"), } } } -- cgit v1.2.3