refactor(search): scoped Arc dep instead of AppContext

This commit is contained in:
2026-06-11 21:32:19 +02:00
parent 20ac0d3adf
commit 2b295e10ba
3 changed files with 9 additions and 5 deletions

View File

@@ -1,11 +1,15 @@
use crate::context::AppContext; use std::sync::Arc;
use domain::{ use domain::{
errors::DomainError, errors::DomainError,
models::{SearchQuery, SearchResults}, models::{SearchQuery, SearchResults},
ports::SearchPort,
}; };
pub async fn execute(ctx: &AppContext, query: SearchQuery) -> Result<SearchResults, DomainError> { pub async fn execute(
ctx.repos.search_port.search(&query).await search_port: Arc<dyn SearchPort>,
query: SearchQuery,
) -> Result<SearchResults, DomainError> {
search_port.search(&query).await
} }
#[cfg(test)] #[cfg(test)]

View File

@@ -7,7 +7,7 @@ use crate::test_helpers::TestContextBuilder;
async fn returns_empty_results() { async fn returns_empty_results() {
let ctx = TestContextBuilder::new().build(); let ctx = TestContextBuilder::new().build();
let result = execute::execute(&ctx, SearchQuery::default()) let result = execute::execute(ctx.repos.search_port.clone(), SearchQuery::default())
.await .await
.unwrap(); .unwrap();

View File

@@ -45,7 +45,7 @@ pub async fn get_search(
}, },
}; };
match search_uc::execute(&state.app_ctx, query).await { match search_uc::execute(state.app_ctx.repos.search_port.clone(), query).await {
Ok(results) => axum::Json(SearchResponse { Ok(results) => axum::Json(SearchResponse {
movies: PaginatedMovieHits { movies: PaginatedMovieHits {
items: results items: results