From e408143ea9aa72be498cac0bf577f29b7966f1a6 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 17 Jun 2022 16:02:46 +0800 Subject: [PATCH 1/5] Add savedAt to searchItem and make readingProgress required --- packages/api/src/generated/graphql.ts | 10 ++++++---- packages/api/src/generated/schema.graphql | 5 +++-- packages/api/src/schema.ts | 5 +++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/api/src/generated/graphql.ts b/packages/api/src/generated/graphql.ts index cec1a2bf5..bd218abe9 100644 --- a/packages/api/src/generated/graphql.ts +++ b/packages/api/src/generated/graphql.ts @@ -1524,8 +1524,9 @@ export type SearchItem = { publishedAt?: Maybe; quote?: Maybe; readAt?: Maybe; - readingProgressAnchorIndex?: Maybe; - readingProgressPercent?: Maybe; + readingProgressAnchorIndex: Scalars['Int']; + readingProgressPercent: Scalars['Float']; + savedAt: Scalars['Date']; shortId?: Maybe; siteName?: Maybe; slug: Scalars['String']; @@ -3852,8 +3853,9 @@ export type SearchItemResolvers, ParentType, ContextType>; quote?: Resolver, ParentType, ContextType>; readAt?: Resolver, ParentType, ContextType>; - readingProgressAnchorIndex?: Resolver, ParentType, ContextType>; - readingProgressPercent?: Resolver, ParentType, ContextType>; + readingProgressAnchorIndex?: Resolver; + readingProgressPercent?: Resolver; + savedAt?: Resolver; shortId?: Resolver, ParentType, ContextType>; siteName?: Resolver, ParentType, ContextType>; slug?: Resolver; diff --git a/packages/api/src/generated/schema.graphql b/packages/api/src/generated/schema.graphql index d2e31b91e..47f7d5730 100644 --- a/packages/api/src/generated/schema.graphql +++ b/packages/api/src/generated/schema.graphql @@ -1082,8 +1082,9 @@ type SearchItem { publishedAt: Date quote: String readAt: Date - readingProgressAnchorIndex: Int - readingProgressPercent: Float + readingProgressAnchorIndex: Int! + readingProgressPercent: Float! + savedAt: Date! shortId: String siteName: String slug: String! diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index b892466be..ca50dfcd5 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -1475,8 +1475,8 @@ const schema = gql` createdAt: Date! updatedAt: Date! isArchived: Boolean! - readingProgressPercent: Float - readingProgressAnchorIndex: Int + readingProgressPercent: Float! + readingProgressAnchorIndex: Int! author: String image: String description: String @@ -1498,6 +1498,7 @@ const schema = gql` siteName: String language: String readAt: Date + savedAt: Date! } type SearchItemEdge { From 1be9c980e1accbb7bafffb93a0cdf38cc16d5964 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 17 Jun 2022 16:03:49 +0800 Subject: [PATCH 2/5] Add savedAt to searchItem and make readingProgress required in elastic --- packages/api/src/elastic/types.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/api/src/elastic/types.ts b/packages/api/src/elastic/types.ts index 64781f93a..17fd6729b 100644 --- a/packages/api/src/elastic/types.ts +++ b/packages/api/src/elastic/types.ts @@ -219,12 +219,13 @@ export interface SearchItem { uploadFileId?: string | null url: string archivedAt?: Date | null - readingProgressPercent?: number - readingProgressAnchorIndex?: number + readingProgressPercent: number + readingProgressAnchorIndex: number userId: string state?: ArticleSavingRequestStatus language?: string readAt?: Date + savedAt: Date } const keys = ['_id', 'url', 'slug', 'userId', 'uploadFileId', 'state'] as const From 2bcf97d2e8c137b8c43b6baeaa779976b244d78d Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 17 Jun 2022 17:07:13 +0800 Subject: [PATCH 3/5] Make updatedAt optional --- packages/api/src/generated/graphql.ts | 4 ++-- packages/api/src/generated/schema.graphql | 2 +- packages/api/src/schema.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/api/src/generated/graphql.ts b/packages/api/src/generated/graphql.ts index bd218abe9..ce6ac7269 100644 --- a/packages/api/src/generated/graphql.ts +++ b/packages/api/src/generated/graphql.ts @@ -1535,7 +1535,7 @@ export type SearchItem = { title: Scalars['String']; unsubHttpUrl?: Maybe; unsubMailTo?: Maybe; - updatedAt: Scalars['Date']; + updatedAt?: Maybe; uploadFileId?: Maybe; url: Scalars['String']; }; @@ -3864,7 +3864,7 @@ export type SearchItemResolvers; unsubHttpUrl?: Resolver, ParentType, ContextType>; unsubMailTo?: Resolver, ParentType, ContextType>; - updatedAt?: Resolver; + updatedAt?: Resolver, ParentType, ContextType>; uploadFileId?: Resolver, ParentType, ContextType>; url?: Resolver; __isTypeOf?: IsTypeOfResolverFn; diff --git a/packages/api/src/generated/schema.graphql b/packages/api/src/generated/schema.graphql index 47f7d5730..c219fb5c0 100644 --- a/packages/api/src/generated/schema.graphql +++ b/packages/api/src/generated/schema.graphql @@ -1093,7 +1093,7 @@ type SearchItem { title: String! unsubHttpUrl: String unsubMailTo: String - updatedAt: Date! + updatedAt: Date uploadFileId: ID url: String! } diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index ca50dfcd5..8f77763e3 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -1473,7 +1473,7 @@ const schema = gql` pageType: PageType! contentReader: ContentReader! createdAt: Date! - updatedAt: Date! + updatedAt: Date isArchived: Boolean! readingProgressPercent: Float! readingProgressAnchorIndex: Int! From 26e7ab178e554863b66577b841eda92a5c159b8e Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 17 Jun 2022 17:08:26 +0800 Subject: [PATCH 4/5] Fetch page savedAt, readingProgress from elastic --- packages/api/src/elastic/highlights.ts | 10 +++++++++- packages/api/src/elastic/types.ts | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/api/src/elastic/highlights.ts b/packages/api/src/elastic/highlights.ts index 0290e26fd..7bb5803ce 100644 --- a/packages/api/src/elastic/highlights.ts +++ b/packages/api/src/elastic/highlights.ts @@ -206,7 +206,15 @@ export const searchHighlights = async ( ], from, size, - _source: ['title', 'slug', 'url', 'createdAt', 'highlights'], + _source: [ + 'title', + 'slug', + 'url', + 'savedAt', + 'highlights', + 'readingProgressPercent', + 'readingProgressAnchorIndex', + ], } console.log('searching highlights in elastic', JSON.stringify(searchBody)) diff --git a/packages/api/src/elastic/types.ts b/packages/api/src/elastic/types.ts index 17fd6729b..4abe889b6 100644 --- a/packages/api/src/elastic/types.ts +++ b/packages/api/src/elastic/types.ts @@ -162,7 +162,7 @@ export interface Highlight { suffix?: string | null annotation?: string | null sharedAt?: Date | null - updatedAt?: Date | null + updatedAt?: Date labels?: Label[] } @@ -226,6 +226,7 @@ export interface SearchItem { language?: string readAt?: Date savedAt: Date + updatedAt?: Date } const keys = ['_id', 'url', 'slug', 'userId', 'uploadFileId', 'state'] as const From 3f4b0f9b8ca93160a61b3b51ad9721cd8efe47b7 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 17 Jun 2022 17:09:08 +0800 Subject: [PATCH 5/5] Update resolver --- packages/api/src/resolvers/article/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index 30aaafb25..1a073713c 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -813,7 +813,7 @@ export const searchResolver = authorized< }, }) - let results: (SearchItemData | Page)[] + let results: SearchItemData[] let totalCount: number const searchType = searchQuery.typeFilter