create db.is_media_group_exists

This commit is contained in:
Akulij 2025-04-18 13:52:45 +03:00
parent 539b5ee48b
commit 0950ccb150
2 changed files with 45 additions and 0 deletions

View File

@ -228,6 +228,23 @@ impl DB {
Ok(media_items) Ok(media_items)
} }
pub async fn is_media_group_exists(
&mut self,
media_group: &str,
) -> Result<bool, Box<dyn std::error::Error>> {
use self::schema::media::dsl::*;
let conn = &mut self.pool.get().await.unwrap();
let is_exists = media
.filter(media_group_id.eq(media_group))
.count()
.get_result::<i64>(conn)
.await?
> 0;
Ok(is_exists)
}
pub async fn drop_media(&mut self, literal: &str) -> Result<usize, Box<dyn std::error::Error>> { pub async fn drop_media(&mut self, literal: &str) -> Result<usize, Box<dyn std::error::Error>> {
use self::schema::media::dsl::*; use self::schema::media::dsl::*;
let conn = &mut self.pool.get().await.unwrap(); let conn = &mut self.pool.get().await.unwrap();

View File

@ -89,3 +89,31 @@ async fn test_drop_media() {
// Clean up after test // Clean up after test
let result = db.drop_media("test_drop_media_literal").await.unwrap(); let result = db.drop_media("test_drop_media_literal").await.unwrap();
} }
#[tokio::test]
async fn test_is_media_group_exists() {
let mut db = setup_db().await;
let media_group = "test_media_group";
let exists = db.is_media_group_exists(media_group).await.unwrap();
assert!(!exists);
let _ = db
.add_media(
"test_media_group_literal",
"photo",
"file_id_1",
Some(media_group),
)
.await
.unwrap();
let exists = db.is_media_group_exists(media_group).await.unwrap();
assert!(exists);
let _ = db.drop_media("test_media_group_literal").await.unwrap();
let exists = db.is_media_group_exists(media_group).await.unwrap();
assert!(!exists);
}