Make search query mandatory (#5772)

* Make search query mandatory

* update js client
This commit is contained in:
Nutomic 2025-06-12 12:16:11 +00:00 committed by GitHub
parent b4c3cda061
commit ea9b19bea8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 20 additions and 26 deletions

View File

@ -31,7 +31,7 @@
"eslint-plugin-prettier": "^5.4.0", "eslint-plugin-prettier": "^5.4.0",
"jest": "^29.5.0", "jest": "^29.5.0",
"joi": "^17.13.3", "joi": "^17.13.3",
"lemmy-js-client": "1.0.0-rename-timestamp-to-at.4", "lemmy-js-client": "1.0.0-search-query-mandatory.1",
"prettier": "^3.5.3", "prettier": "^3.5.3",
"ts-jest": "^29.3.2", "ts-jest": "^29.3.2",
"tsoa": "^6.6.0", "tsoa": "^6.6.0",

View File

@ -36,8 +36,8 @@ importers:
specifier: ^17.13.3 specifier: ^17.13.3
version: 17.13.3 version: 17.13.3
lemmy-js-client: lemmy-js-client:
specifier: 1.0.0-rename-timestamp-to-at.4 specifier: 1.0.0-search-query-mandatory.1
version: 1.0.0-rename-timestamp-to-at.4 version: 1.0.0-search-query-mandatory.1
prettier: prettier:
specifier: ^3.5.3 specifier: ^3.5.3
version: 3.5.3 version: 3.5.3
@ -1594,8 +1594,8 @@ packages:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'} engines: {node: '>=6'}
lemmy-js-client@1.0.0-rename-timestamp-to-at.4: lemmy-js-client@1.0.0-search-query-mandatory.1:
resolution: {integrity: sha512-tEp92LODxqLIyru7qaMFVuXEmsusSDzG2V7QYctBYGfbJzsoUEogtuI9Gla5MlL6lT9l/hOLSv/ujqxdS0FLAg==} resolution: {integrity: sha512-Km4w/7BjL/aMnVVADQ6eqdGAYPzaXzOaCbeideWJ4XbNR3ESzXAuMyjK9ynw9Q65NWzXyAFs5VoaTALFVjU3aA==}
leven@3.1.0: leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
@ -4404,7 +4404,7 @@ snapshots:
kleur@3.0.3: {} kleur@3.0.3: {}
lemmy-js-client@1.0.0-rename-timestamp-to-at.4: lemmy-js-client@1.0.0-search-query-mandatory.1:
dependencies: dependencies:
'@tsoa/runtime': 6.6.0 '@tsoa/runtime': 6.6.0
transitivePeerDependencies: transitivePeerDependencies:

View File

@ -566,7 +566,7 @@ test("Dont receive community activities after unsubscribe", async () => {
// await longDelay(); // await longDelay();
let form: Search = { let form: Search = {
search_term: postRes.post_view.post.name, q: postRes.post_view.post.name,
type_: "Posts", type_: "Posts",
listing_type: "All", listing_type: "All",
}; };

View File

@ -327,7 +327,7 @@ export async function searchPostLocal(
post: Post, post: Post,
): Promise<PostView | undefined> { ): Promise<PostView | undefined> {
let form: Search = { let form: Search = {
search_term: post.name, q: post.name,
type_: "Posts", type_: "Posts",
listing_type: "All", listing_type: "All",
}; };

View File

@ -47,7 +47,7 @@ pub async fn search(
let pool = &mut context.pool(); let pool = &mut context.pool();
let search_fut = SearchCombinedQuery { let search_fut = SearchCombinedQuery {
search_term: data.search_term.clone(), search_term: Some(data.q.clone()),
community_id, community_id,
creator_id: data.creator_id, creator_id: data.creator_id,
type_: data.type_, type_: data.type_,
@ -65,24 +65,19 @@ pub async fn search(
} }
.list(pool, &local_user_view, &site_view.site); .list(pool, &local_user_view, &site_view.site);
let results = if let Some(q) = &data.search_term { let resolve_fut = resolve_object_internal(&data.q, &local_user_view, &context);
let resolve_fut = resolve_object_internal(q, &local_user_view, &context); let (search, resolve) = join(search_fut, resolve_fut).await;
let (search, resolve) = join(search_fut, resolve_fut).await; let mut search = search?;
let mut search = search?; // Ignore resolve errors as query may not be Activitypub object
// Ignore resolve errors as query may not be Activitypub object if let Ok(resolve) = resolve {
if let Ok(resolve) = resolve { search.push(resolve);
search.push(resolve); }
}
search
} else {
search_fut.await?
};
let next_page = results.last().map(PaginationCursorBuilder::to_cursor); let next_page = search.last().map(PaginationCursorBuilder::to_cursor);
let prev_page = results.first().map(PaginationCursorBuilder::to_cursor); let prev_page = search.first().map(PaginationCursorBuilder::to_cursor);
Ok(Json(SearchResponse { Ok(Json(SearchResponse {
results, results: search,
next_page, next_page,
prev_page, prev_page,
})) }))

View File

@ -139,8 +139,7 @@ pub enum SearchCombinedView {
#[cfg_attr(feature = "full", ts(export))] #[cfg_attr(feature = "full", ts(export))]
/// Searches the site, given a search term, and some optional filters. /// Searches the site, given a search term, and some optional filters.
pub struct Search { pub struct Search {
#[cfg_attr(feature = "full", ts(optional))] pub q: String,
pub search_term: Option<String>,
#[cfg_attr(feature = "full", ts(optional))] #[cfg_attr(feature = "full", ts(optional))]
pub community_id: Option<CommunityId>, pub community_id: Option<CommunityId>,
#[cfg_attr(feature = "full", ts(optional))] #[cfg_attr(feature = "full", ts(optional))]