mirror of
https://github.com/dergigi/boris.git
synced 2025-12-18 07:04:19 +01:00
- Move ogStore, ogHtml, and articleMeta from src/services/ to api/services/ - Update imports in article-og.ts and article-og-refresh.ts - Update import paths in articleMeta.ts (lib/profile and src/config/relays) - Remove old files from src/services/ - Clean up ESLint config to only reference api/**/*.ts This fixes the ERR_MODULE_NOT_FOUND error on Vercel by ensuring serverless functions can access the service modules.
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import type { VercelRequest, VercelResponse } from '@vercel/node'
|
|
import { setArticleMeta } from './services/ogStore'
|
|
import { fetchArticleMetadataViaRelays } from './services/articleMeta'
|
|
|
|
export default async function handler(req: VercelRequest, res: VercelResponse) {
|
|
// Validate refresh secret
|
|
const providedSecret = req.headers['x-refresh-key']
|
|
const expectedSecret = process.env.OG_REFRESH_SECRET || ''
|
|
|
|
if (providedSecret !== expectedSecret) {
|
|
return res.status(401).json({ error: 'Unauthorized' })
|
|
}
|
|
|
|
const naddr = (req.query.naddr as string | undefined)?.trim()
|
|
if (!naddr) {
|
|
return res.status(400).json({ error: 'Missing naddr parameter' })
|
|
}
|
|
|
|
try {
|
|
// Fetch metadata via relays (WebSockets)
|
|
const meta = await fetchArticleMetadataViaRelays(naddr)
|
|
|
|
if (meta) {
|
|
// Store in Redis
|
|
await setArticleMeta(naddr, meta)
|
|
return res.status(200).json({ ok: true, cached: true })
|
|
} else {
|
|
return res.status(200).json({ ok: true, cached: false })
|
|
}
|
|
} catch (err) {
|
|
console.error('Error refreshing article metadata:', err)
|
|
return res.status(500).json({ error: 'Internal server error' })
|
|
}
|
|
}
|
|
|