From 83cd0ac880a4c8de5635c4b42a78706c99c51ee9 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 6 Apr 2023 12:03:26 +0800 Subject: [PATCH] Return error if query exceeds 255 char --- packages/api/src/generated/graphql.ts | 1 + packages/api/src/generated/schema.graphql | 1 + packages/api/src/resolvers/article/index.ts | 6 ++++++ packages/api/src/schema.ts | 1 + 4 files changed, 9 insertions(+) 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 {