diff options
| author | trisusilo48 <tri.susilo@altama.co.id> | 2024-11-29 14:09:16 +0700 |
|---|---|---|
| committer | trisusilo48 <tri.susilo@altama.co.id> | 2024-11-29 14:09:16 +0700 |
| commit | 3f0ad9fcd0827087c0c134cf9ce7608c1d937973 (patch) | |
| tree | 5b57984ba597bfbf4d9d4d9de8befbd476efb1ac /src/pages/api | |
| parent | b4861f70338adb3960125923a7e6e4032279c88e (diff) | |
fixing redis flash sale
Diffstat (limited to 'src/pages/api')
| -rw-r--r-- | src/pages/api/flashsale-header.js | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/pages/api/flashsale-header.js b/src/pages/api/flashsale-header.js index 31f8efdd..6916318a 100644 --- a/src/pages/api/flashsale-header.js +++ b/src/pages/api/flashsale-header.js @@ -15,23 +15,36 @@ export default async function handler(req, res) { try { await connectRedis(); const cacheKey = `flashsale_header`; - // await client.del(cacheKey); + + // Cek data yang ada di Redis let cachedData = await client.get(cacheKey); if (cachedData) { - const data = JSON.parse(cachedData); + const data = JSON.parse(cachedData); + + // Periksa apakah data adalah array dan panjangnya 0 + if (!data || (Array.isArray(data) && data.length === 0)) { + await client.del(cacheKey); // Hapus kunci jika data kosong + return res.status(200).json({ data: [] }); + } return res.status(200).json({ data }); } else { const flashSale = await odooApi('GET', `/api/v1/flashsale/header`); + console.log('ini flash sale', flashSale.length); + if (flashSale.length === 0) { + return res.status(200).json({ data: [] }); + } else { + await client.set( + cacheKey, + JSON.stringify(flashSale), + 'EX', + flashSale.duration + ); - await client.set( - cacheKey, - JSON.stringify(flashSale), - 'EX', - flashSale.duration - ); - cachedData = await client.get(cacheKey); - return res.status(200).json({ data: cachedData }); + cachedData = await client.get(cacheKey); + const data = JSON.parse(cachedData); + return res.status(200).json({ data }); + } } } catch (error) { console.error('Error interacting with Redis or fetching data:', error); |
