import { getWebsiteSession, getWebsite } from 'queries'; import { Website, Session } from '@prisma/client'; import redis from '@umami/redis-client'; export async function fetchWebsite(websiteId: string): Promise { let website = null; if (redis.enabled) { website = await redis.client.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400); } else { website = await getWebsite(websiteId); } if (!website || website.deletedAt) { return null; } return website; } export async function fetchSession(websiteId: string, sessionId: string): Promise { let session = null; if (redis.enabled) { session = await redis.client.fetch( `session:${sessionId}`, () => getWebsiteSession(websiteId, sessionId), 86400, ); } else { session = await getWebsiteSession(websiteId, sessionId); } if (!session) { return null; } return session; }