diff --git a/db/db-core/src/lib.rs b/db/db-core/src/lib.rs index 77c98eca..ad23e77a 100644 --- a/db/db-core/src/lib.rs +++ b/db/db-core/src/lib.rs @@ -289,6 +289,18 @@ pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase { &self, campaign_id: &str, ) -> DBResult<()>; + + /// Get publishing status of pow analytics for captcha ID/ campaign ID + async fn analytics_captcha_is_published(&self, campaign_id: &str) -> DBResult { + match self + .analytics_get_psuedo_id_from_capmaign_id(campaign_id) + .await + { + Ok(_) => Ok(true), + Err(errors::DBError::CaptchaNotFound) => Ok(false), + Err(e) => Err(e), + } + } } #[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)] diff --git a/db/db-core/src/tests.rs b/db/db-core/src/tests.rs index eccc27b0..ceb87393 100644 --- a/db/db-core/src/tests.rs +++ b/db/db-core/src/tests.rs @@ -308,12 +308,7 @@ pub async fn database_works<'a, T: MCDatabase>( .await .unwrap(); assert_eq!(db.analytics_fetch(c.key, 1000, 0).await.unwrap().len(), 0); - let err = db.analytics_get_psuedo_id_from_capmaign_id(c.key).await; - assert!(err.is_err()); - assert_eq!( - format!("{:?}", err), - format!("{:?}", Err::<(), errors::DBError>(DBError::CaptchaNotFound)) - ); + assert!(!db.analytics_captcha_is_published(c.key).await.unwrap()); db.analytics_delete_all_records_for_campaign(c.key) .await .unwrap();