diff --git a/packages/api/src/generated/graphql.ts b/packages/api/src/generated/graphql.ts index d1c96d1cf..222de229a 100644 --- a/packages/api/src/generated/graphql.ts +++ b/packages/api/src/generated/graphql.ts @@ -2223,6 +2223,7 @@ export type SearchError = { }; export enum SearchErrorCode { + QueryTooLong = 'QUERY_TOO_LONG', Unauthorized = 'UNAUTHORIZED' } diff --git a/packages/api/src/generated/schema.graphql b/packages/api/src/generated/schema.graphql index 7490fb535..bee6ae46c 100644 --- a/packages/api/src/generated/schema.graphql +++ b/packages/api/src/generated/schema.graphql @@ -1623,6 +1623,7 @@ type SearchError { } enum SearchErrorCode { + QUERY_TOO_LONG UNAUTHORIZED } diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index defec536c..041d930c1 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -53,6 +53,7 @@ import { SaveArticleReadingProgressErrorCode, SaveArticleReadingProgressSuccess, SearchError, + SearchErrorCode, SearchItem, SearchSuccess, SetBookmarkArticleError, @@ -873,6 +874,11 @@ export const searchResolver = authorized< const startCursor = params.after || '' const first = params.first || 10 + // the query size is limited to 255 characters + if (params.query && params.query.length > 255) { + return { errorCodes: [SearchErrorCode.QueryTooLong] } + } + const searchQuery = parseSearchQuery(params.query || undefined) analytics.track({ diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index c409027c1..d749e97d6 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -1587,6 +1587,7 @@ const schema = gql` enum SearchErrorCode { UNAUTHORIZED + QUERY_TOO_LONG } type SearchError {