diff options
| author | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2020-06-14 18:56:22 -0400 |
|---|---|---|
| committer | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2020-06-14 18:56:22 -0400 |
| commit | 95742615ef31e7751663b0192a882fb7e5a9d718 (patch) | |
| tree | 42cbddb2ed79f4f5b4ee7a8f167ae1aacf6ce08a /src/database.rs | |
| parent | 70f13d8277e71191b94443dde0758587e9e56115 (diff) | |
Don't expose image IDs through the CLI interface.
Diffstat (limited to 'src/database.rs')
| -rw-r--r-- | src/database.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/database.rs b/src/database.rs index bd5ae65..4e33fa7 100644 --- a/src/database.rs +++ b/src/database.rs @@ -264,6 +264,11 @@ impl TagDatabase { })?) } + /// Return the `File` object for the file at `path`. + pub fn file_by_path<T: AsRef<Path>>(&self, path: T) -> Result<File> { + self.file_by_id(self.id_for_path(path)?) + } + /// Return the files in the database satisfying `q` and `k`. pub fn query(&self, q: &Query, k: Option<Keyset>) -> Result<Vec<File>> { // Return an empty vector if the query contains tags that aren't in the @@ -433,7 +438,7 @@ mod tests { #[test] fn test_add_file_fail_on_already_indexed() { let tb = TagDatabase::new_mem().unwrap(); - let img = tb.add_file("test", &vec!["tag1"]).unwrap(); + tb.add_file("test", &vec!["tag1"]).unwrap(); assert!(tb.add_file("test", &vec!["tag2"]).is_err()); } @@ -570,6 +575,13 @@ mod tests { } #[test] + fn test_path_resolution() { + let tb = TagDatabase::new_mem().unwrap(); + let img = tb.add_file("test1", &vec!["tag1", "tag2"]).unwrap(); + assert_eq!(tb.file_by_path(img.path).unwrap().path, "test1"); + } + + #[test] fn top_tags() { let tb = TagDatabase::new_mem().unwrap(); let ids: Vec<_> = (1..4) |