diff options
| author | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2020-05-18 12:10:49 -0400 |
|---|---|---|
| committer | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2020-05-18 12:10:49 -0400 |
| commit | 83f7e53cf4b84bc26101e57b27b4dac0a32a19cc (patch) | |
| tree | 10c426971878f3b87379e98e510410b1ac9063e7 /src | |
| parent | d831a9340652f8a259c0764788b8914b6204beac (diff) | |
Implement `tags_for_image`.
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index 3e821c2..3e66f9a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -101,6 +101,21 @@ impl TagBase { )?; Ok(()) } + + fn tags_for_image(&self, image_id: i64) -> Result<Vec<String>> { + Ok(self + .conn + .prepare( + "SELECT tags.name, COUNT(mapping.tag) as tag_count + FROM mapping + INNER JOIN images ON images.id = ? + INNER JOIN tags + GROUP BY tags.name", + )? + .query_map(params![image_id], |row| row.get(0))? + .filter_map(|tag| tag.ok()) + .collect()) + } } fn main() { |