From 9f8ea060b6534d08cf784b7d337e5103c71ca0a0 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Thu, 9 Feb 2023 10:13:50 -0800 Subject: [PATCH] implement cloud mode logic --- pages/api/config.ts | 2 +- pages/login.js | 2 +- queries/admin/website.ts | 59 ++++++++++++++++++---------------------- 3 files changed, 28 insertions(+), 35 deletions(-) diff --git a/pages/api/config.ts b/pages/api/config.ts index e5ae318a..65c8aa97 100644 --- a/pages/api/config.ts +++ b/pages/api/config.ts @@ -16,7 +16,7 @@ export default async (req: NextApiRequest, res: NextApiResponse) trackerScriptName: process.env.TRACKER_SCRIPT_NAME, updatesDisabled: !!process.env.DISABLE_UPDATES, telemetryDisabled: !!process.env.DISABLE_TELEMETRY, - adminDisabled: !!process.env.DISABLE_ADMIN, + adminDisabled: !!process.env.CLOUD_MODE, }); } diff --git a/pages/login.js b/pages/login.js index eb837e21..a4cc4361 100644 --- a/pages/login.js +++ b/pages/login.js @@ -16,7 +16,7 @@ export default function LoginPage({ pageDisabled }) { export async function getServerSideProps() { return { props: { - pageDisabled: !!process.env.DISABLE_LOGIN, + pageDisabled: !!process.env.CLOUD_MODE, }, }; } diff --git a/queries/admin/website.ts b/queries/admin/website.ts index cf2425a3..c54d2b48 100644 --- a/queries/admin/website.ts +++ b/queries/admin/website.ts @@ -69,42 +69,35 @@ export async function resetWebsite( }); } -export async function deleteWebsite(websiteId: string) { - return runQuery({ - [PRISMA]: () => deleteWebsiteRelationalQuery(websiteId), - [CLICKHOUSE]: () => deleteWebsiteClickhouseQuery(websiteId), - }); -} - -async function deleteWebsiteRelationalQuery( - websiteId, +export async function deleteWebsite( + websiteId: string, ): Promise<[Prisma.BatchPayload, Prisma.BatchPayload, Website]> { const { client, transaction } = prisma; - return transaction([ - client.websiteEvent.deleteMany({ - where: { websiteId }, - }), - client.session.deleteMany({ - where: { websiteId }, - }), - client.website.delete({ + if (process.env.CLOUD_MODE) { + return prisma.client.website.update({ + data: { + deletedAt: new Date(), + }, where: { id: websiteId }, - }), - ]).then(async data => { - if (cache.enabled) { - await cache.deleteWebsite(websiteId); - } + }); + } else { + return transaction([ + client.websiteEvent.deleteMany({ + where: { websiteId }, + }), + client.session.deleteMany({ + where: { websiteId }, + }), + client.website.delete({ + where: { id: websiteId }, + }), + ]).then(async data => { + if (cache.enabled) { + await cache.deleteWebsite(websiteId); + } - return data; - }); -} - -async function deleteWebsiteClickhouseQuery(websiteId): Promise { - return prisma.client.website.update({ - data: { - deletedAt: new Date(), - }, - where: { id: websiteId }, - }); + return data; + }); + } }