22 lines
532 B
Rust
22 lines
532 B
Rust
use domain::DomainResult;
|
|
|
|
use super::deps::LibraryQueryDeps;
|
|
use super::parse_content_type;
|
|
use super::queries::ListGenresQuery;
|
|
|
|
pub async fn execute(deps: &LibraryQueryDeps, query: ListGenresQuery) -> DomainResult<Vec<String>> {
|
|
let content_type = query
|
|
.content_type
|
|
.as_deref()
|
|
.map(parse_content_type)
|
|
.transpose()?;
|
|
|
|
deps.library_query
|
|
.list_genres(content_type.as_ref(), query.provider_id.as_deref())
|
|
.await
|
|
}
|
|
|
|
#[cfg(test)]
|
|
#[path = "tests/list_genres.rs"]
|
|
mod tests;
|