feat(server): busca FTS5 com filtros e paginacao

This commit is contained in:
2026-08-05 20:35:17 -03:00
parent 2564c33748
commit 1d1de4bcec
7 changed files with 169 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
use axum::extract::{Query, State};
use axum::Json;
use crate::error::AppResult;
use crate::models::{FileRecord, SearchQuery};
use crate::state::SharedState;
pub async fn search(
State(state): State<SharedState>,
Query(q): Query<SearchQuery>,
) -> AppResult<Json<Vec<FileRecord>>> {
let db = state.db.lock().unwrap();
let limit = q.limit.unwrap_or(state.config.max_results).clamp(1, 100);
let offset = q.offset.unwrap_or(0).max(0);
let rows = crate::store::search_files(
&db,
q.q.as_deref().unwrap_or(""),
q.ftype.as_deref(),
limit,
offset,
)?;
Ok(Json(rows))
}