summaryrefslogtreecommitdiff
path: root/src/db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/db.rs b/src/db.rs
index 263d88d..6a4d732 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -26,7 +26,7 @@ pub trait Db {
fn get_tags_sorted(&self, image_id: i64) -> Vec<Tag>;
fn insert_tags(&self, tags: &mut [Tag]);
- fn delete_tags(&self, tag_ids: &[i64]);
+ fn delete_tags(&self, tags: &[Tag]);
fn update_tags(&self, tags: &[Tag]);
}
@@ -204,10 +204,10 @@ impl Db for SqliteDb {
}
}
- fn delete_tags(&self, tag_ids: &[i64]) {
+ fn delete_tags(&self, tags: &[Tag]) {
let _timer = crate::metrics::get().db_query_duration.start_timer();
- for id in tag_ids {
- self.conn.execute("DELETE FROM tags WHERE id = ?1", (id,)).unwrap();
+ for tag in tags {
+ self.conn.execute("DELETE FROM tags WHERE id = ?1", (tag.id,)).unwrap();
}
}
@@ -310,8 +310,9 @@ impl Db for StubDb {
}
}
- fn delete_tags(&self, tag_ids: &[i64]) {
- self.tags.borrow_mut().retain(|t| !tag_ids.contains(&t.id));
+ fn delete_tags(&self, tags: &[Tag]) {
+ let ids: Vec<i64> = tags.iter().map(|t| t.id).collect();
+ self.tags.borrow_mut().retain(|t| !ids.contains(&t.id));
}
fn update_tags(&self, tags: &[Tag]) {
@@ -384,7 +385,7 @@ mod tests {
Tag { id: 0, image_id: images[0].id, tag: "2.0".into(), digest: None },
];
db.insert_tags(&mut tags);
- db.delete_tags(&[tags[0].id]);
+ db.delete_tags(&[tags[0].clone()]);
let result: Vec<String> = db.get_tags_sorted(images[0].id).into_iter().map(|t| t.tag).collect();
assert_eq!(result, vec!["2.0"]);
}