refactor(application): remove pass-through search use cases — call SearchPort directly
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user