diff --git a/src/lib/load.ts b/src/lib/load.ts index 5b834ca8..3650f233 100644 --- a/src/lib/load.ts +++ b/src/lib/load.ts @@ -1,3 +1,4 @@ +import { serializeError } from 'serialize-error'; import { getWebsiteSession, getWebsite } from 'queries'; import { Website, Session } from '@prisma/client'; import { getClient, redisEnabled } from '@umami/redis-client'; @@ -5,16 +6,21 @@ import { getClient, redisEnabled } from '@umami/redis-client'; export async function fetchWebsite(websiteId: string): Promise { let website = null; - if (redisEnabled) { - const redis = getClient(); + try { + if (redisEnabled) { + const redis = getClient(); - website = await redis.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400); - } else { - website = await getWebsite(websiteId); - } + website = await redis.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400); + } else { + website = await getWebsite(websiteId); + } - if (!website || website.deletedAt) { - return null; + if (!website || website.deletedAt) { + return null; + } + } catch (e) { + // eslint-disable-next-line no-console + console.log('FETCH WEBSITE ERROR:', serializeError(e)); } return website; @@ -23,16 +29,21 @@ export async function fetchWebsite(websiteId: string): Promise { export async function fetchSession(websiteId: string, sessionId: string): Promise { let session = null; - if (redisEnabled) { - const redis = getClient(); + try { + if (redisEnabled) { + const redis = getClient(); - session = await redis.fetch( - `session:${sessionId}`, - () => getWebsiteSession(websiteId, sessionId), - 86400, - ); - } else { - session = await getWebsiteSession(websiteId, sessionId); + session = await redis.fetch( + `session:${sessionId}`, + () => getWebsiteSession(websiteId, sessionId), + 86400, + ); + } else { + session = await getWebsiteSession(websiteId, sessionId); + } + } catch (e) { + // eslint-disable-next-line no-console + console.log('FETCH SESSION ERROR:', serializeError(e)); } if (!session) {