Add search/metadata API endpoint

- Add MetadataSearchRequest, SearchResponse, SearchAssetResult,
  SearchAlbumResult, SearchFacet, SearchFacetCount models
- Create SearchApi with SearchMetadataBuilder supporting 35+ filters
- Support filtering by location, dates, camera info, favorites,
  tags, people, albums, text search, and more
- Integrate into Client with client.search().metadata() API
This commit is contained in:
Joakim Hulthe
2026-04-14 19:35:06 +00:00
parent 3284a18dcb
commit c55d2b9080
4 changed files with 577 additions and 1 deletions

View File

@@ -1,6 +1,6 @@
//! Client for interacting with the Immich API
use crate::apis::{AlbumsApi, AssetsApi, ServerApi, TimelineApi};
use crate::apis::{AlbumsApi, AssetsApi, SearchApi, ServerApi, TimelineApi};
use crate::error::{ImmichError, Result};
use std::sync::Arc;
use std::time::Duration;
@@ -201,6 +201,11 @@ impl Client {
AssetsApi::new(self.clone())
}
/// Access the search API
pub fn search(&self) -> SearchApi {
SearchApi::new(self.clone())
}
/// Access the server API
pub fn server(&self) -> ServerApi {
ServerApi::new(self.clone())