newsnow/server/api/s/entire.post.ts

23 lines
720 B
TypeScript

import type { SourceID, SourceResponse } from "@shared/types"
import { getCacheTable } from "#/database/cache"
export default defineEventHandler(async (event) => {
try {
const { sources: _ }: { sources: SourceID[] } = await readBody(event)
const cacheTable = await getCacheTable()
const ids = _?.filter(k => sources[k])
if (ids?.length && cacheTable) {
const caches = await cacheTable.getEntire(ids)
const now = Date.now()
return caches.map(cache => ({
status: "cache",
id: cache.id,
items: cache.items,
updatedTime: now - cache.updated < sources[cache.id].interval ? now : cache.updated,
})) as SourceResponse[]
}
} catch {
//
}
})