refactor: wrap direct port calls behind use cases — notifications, search, popular_tags
Some checks failed
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m7s
test / unit (pull_request) Successful in 15m51s
test / integration (pull_request) Failing after 17m3s

This commit is contained in:
2026-05-14 16:13:34 +02:00
parent 004f3cd4d2
commit d50c13a2db
7 changed files with 82 additions and 10 deletions

View File

@@ -1,6 +1,8 @@
use axum::{extract::{Path, Query, State}, Json};
use api_types::{requests::UpdateProfileRequest, responses::{ErrorResponse, UserResponse}};
use application::use_cases::profile::{get_user_by_username, update_profile};
use application::use_cases::search::search_users;
use application::use_cases::feed::list_users;
use crate::{errors::ApiError, extractors::AuthUser, handlers::auth::to_user_response, state::AppState};
#[utoipa::path(
@@ -54,14 +56,14 @@ 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 = s.search.search_users(q, &page_params).await?;
let result = search_users(&*s.search, q, page_params).await?;
let users: Vec<_> = result.items.iter().map(|u| crate::handlers::auth::to_user_response(u)).collect();
return Ok(Json(serde_json::json!({
"items": users, "total": result.total, "page": result.page, "per_page": result.per_page
})));
}
let all = s.users.list_with_stats().await?;
let all = list_users(&*s.users).await?;
let total = all.len() as i64;
let start = ((page - 1) * per_page) as usize;
let items: Vec<_> = all.into_iter()