import { createClient } from 'redis'; import { getPageContent } from '~/services/pageContent'; // import { fetchCategoryManagementSolr } from '../../lib/home/api/categoryManagementApi'; const client = createClient(); client.on('error', (err) => console.error('Redis Client Error', err)); const connectRedis = async () => { if (!client.isOpen) { await client.connect(); } }; export default async function handler(req, res) { const { path } = req.query; try { await connectRedis(); // await client.del('onbording-popup'); let cachedData; if (req.method === 'GET') { cachedData = await client.get(`page-content:${path}`); if (!cachedData) { const items = await getPageContent({ path }); await client.set( `page-content:${path}`, JSON.stringify(items), 'EX', 604800 // Expiry 1 minggu ); cachedData = await client.get(`page-content:${path}`); } const data = cachedData ? JSON.parse(cachedData) : null; res.status(200).json({ data }); } else { res.setHeader('Allow', ['GET']); res.status(405).end(`Method ${req.method} Not Allowed`); } } catch (error) { console.error('Error interacting with Redis:', error); res.status(500).json({ error: 'Error interacting with Redis' }); } }