import { Handlers } from "$fresh/server.ts"; import { AccessDeniedError } from "@lib/errors.ts"; import { getAllRecommendations } from "@lib/recommendation.ts"; import { json } from "@lib/helpers.ts"; export const handler: Handlers = { async GET(_, ctx) { const session = ctx.state.session; if (!session) { throw new AccessDeniedError(); } const recs = await getAllRecommendations(); const allKeywords: Record = {}; for (const rec of recs) { if (rec.keywords?.length) { for (const keyword of rec.keywords) { if (keyword in allKeywords) { allKeywords[keyword] += 1; } else { allKeywords[keyword] = 1; } } } } const keywords = Object.entries(allKeywords).sort((a, b) => a[1] > b[1] ? -1 : 1 ).slice(0, 100); return json({ keywords, }); }, };