From 27b352f9ae897df936725c98adc76310d701734c Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Mon, 23 Oct 2023 19:07:47 +0800 Subject: [PATCH] fix: updates since api returns error for android client if invalid date is supplied --- packages/api/src/resolvers/article/index.ts | 8 +++++++- packages/api/test/resolvers/article.test.ts | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index 85a4bd4de..f0e4cd327 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -46,6 +46,7 @@ import { TypeaheadSearchSuccess, UpdateReason, UpdatesSinceError, + UpdatesSinceErrorCode, UpdatesSinceSuccess, } from '../../generated/graphql' import { getColumns } from '../../repository' @@ -702,7 +703,12 @@ export const updatesSinceResolver = authorized< const startCursor = after || '' const size = first || 10 - const startDate = new Date(since) + let startDate = new Date(since) + if (isNaN(startDate.getTime())) { + // for android app compatibility + startDate = new Date(0) + } + const { libraryItems, count } = await searchLibraryItems( { from: Number(startCursor), diff --git a/packages/api/test/resolvers/article.test.ts b/packages/api/test/resolvers/article.test.ts index fbf3b2d86..4607044f4 100644 --- a/packages/api/test/resolvers/article.test.ts +++ b/packages/api/test/resolvers/article.test.ts @@ -1670,6 +1670,21 @@ describe('Article API', () => { UpdateReason.Deleted ) }) + + context('when since is -1000000000-01-01T00:00:00Z from android app', () => { + before(() => { + since = '-1000000000-01-01T00:00:00Z' + }) + + it('returns all', async () => { + const res = await graphqlRequest( + updatesSinceQuery(since), + authToken + ).expect(200) + + expect(res.body.data.updatesSince.edges.length).to.eql(5) + }) + }) }) describe('BulkAction API', () => {