From ba35fa4447189ea63e97581fc145719eca3530b8 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 30 Jun 2023 18:05:41 +0800 Subject: [PATCH] feat: show soft deleted pages within 14 days by searching in:trash --- packages/api/src/elastic/pages.ts | 13 ++++++++++++- packages/api/src/utils/search.ts | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/api/src/elastic/pages.ts b/packages/api/src/elastic/pages.ts index c53f20551..d4b3f9314 100644 --- a/packages/api/src/elastic/pages.ts +++ b/packages/api/src/elastic/pages.ts @@ -92,6 +92,17 @@ const appendInFilter = (builder: ESBuilder, filter: InFilter): ESBuilder => { return builder.query('exists', { field: 'archivedAt' }) case InFilter.INBOX: return builder.notQuery('exists', { field: 'archivedAt' }) + case InFilter.TRASH: + // return only deleted pages within 14 days + return builder + .query('term', { + state: ArticleSavingRequestStatus.Deleted, + }) + .andQuery('range', { + updatedAt: { + gte: 'now-14d', + }, + }) } return builder } @@ -515,7 +526,7 @@ const buildSearchBody = (userId: string, args: PageSearchArgs) => { state: ArticleSavingRequestStatus.Processing, }) } - if (!args.includeDeleted) { + if (!args.includeDeleted && inFilter !== InFilter.TRASH) { builder = builder.notQuery('term', { state: ArticleSavingRequestStatus.Deleted, }) diff --git a/packages/api/src/utils/search.ts b/packages/api/src/utils/search.ts index 737572bec..4caca6c8b 100644 --- a/packages/api/src/utils/search.ts +++ b/packages/api/src/utils/search.ts @@ -21,6 +21,7 @@ export enum InFilter { ALL, INBOX, ARCHIVE, + TRASH, } export interface SearchFilter { @@ -120,6 +121,8 @@ const parseInFilter = ( return InFilter.INBOX case 'ARCHIVE': return InFilter.ARCHIVE + case 'TRASH': + return InFilter.TRASH } return query ? InFilter.ALL : InFilter.INBOX }