refactor(application): remove pass-through search use cases — call SearchPort directly

This commit is contained in:
2026-05-15 13:59:30 +02:00
parent f697267828
commit 1a77e15d70
4 changed files with 5 additions and 42 deletions

View File

@@ -4,6 +4,5 @@ pub mod federation_management;
pub mod feed;
pub mod notifications;
pub mod profile;
pub mod search;
pub mod social;
pub mod thoughts;

View File

@@ -1,26 +0,0 @@
use domain::{
errors::DomainError,
models::{
feed::{FeedEntry, PageParams, Paginated},
user::User,
},
ports::SearchPort,
value_objects::UserId,
};
pub async fn search_thoughts(
search: &dyn SearchPort,
query: &str,
page: PageParams,
viewer_id: Option<&UserId>,
) -> Result<Paginated<FeedEntry>, DomainError> {
search.search_thoughts(query, &page, viewer_id).await
}
pub async fn search_users(
search: &dyn SearchPort,
query: &str,
page: PageParams,
) -> Result<Paginated<User>, DomainError> {
search.search_users(query, &page).await
}

View File

@@ -11,7 +11,6 @@ use application::use_cases::feed::{
get_popular_tags as uc_get_popular_tags, get_public_feed, get_user_feed,
};
use application::use_cases::profile::{get_user_by_id_or_username, get_user_by_username};
use application::use_cases::search::{search_thoughts, search_users};
use axum::{
extract::{Path, Query, State},
http::{header, HeaderMap},
@@ -104,22 +103,14 @@ pub async fn search_handler(
let query = q.q.trim().to_string();
let (thoughts_result, users_result) = tokio::join!(
search_thoughts(
&*s.search,
s.search.search_thoughts(
&query,
PageParams {
page: page.page,
per_page: page.per_page
},
&page,
viewer.as_ref()
),
search_users(
&*s.search,
s.search.search_users(
&query,
PageParams {
page: page.page,
per_page: page.per_page
}
&page
),
);

View File

@@ -12,7 +12,6 @@ use application::use_cases::feed::list_users_paginated;
use application::use_cases::profile::{
get_user as fetch_user, get_user_by_id_or_username, update_profile,
};
use application::use_cases::search::search_users;
use axum::{
extract::{Path, Query, State},
http::{header, HeaderMap},
@@ -135,7 +134,7 @@ pub async fn get_users(
let page_params = PageParams { page, per_page };
if let Some(q) = params.get("q").filter(|q| !q.trim().is_empty()) {
let result = search_users(&*s.search, q, page_params).await?;
let result = s.search.search_users(q, &page_params).await?;
let users: Vec<_> = result
.items
.iter()