From a7d0525d2eea4d06828a83add7e03ca6b88ee53a Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 2 Dec 2022 18:26:16 +0800 Subject: [PATCH] Add recommendPage helper function --- packages/api/src/elastic/groups.ts | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 packages/api/src/elastic/groups.ts diff --git a/packages/api/src/elastic/groups.ts b/packages/api/src/elastic/groups.ts new file mode 100644 index 000000000..d87d5f086 --- /dev/null +++ b/packages/api/src/elastic/groups.ts @@ -0,0 +1,37 @@ +import { Group, Page, PageContext } from './types' +import { createPage, updatePage } from './pages' + +export const recommendPage = async ( + ctx: PageContext, + page: Page, + userId: string, + group: Group, + existingPage?: Page +): Promise => { + try { + if (existingPage) { + // update recommendedBy in the existing page + const recommendedBy = (existingPage.recommendedBy || []).concat(group) + + await updatePage( + existingPage.id, + { + recommendedBy, + }, + ctx + ) + return existingPage.id + } + + // create a new page + const newPage = { + ...page, + recommendedBy: [group], + userId, + } + + return createPage(newPage, ctx) + } catch (err) { + console.error(err) + } +}