HotTRDealsBackend/services/redis/trendingDealList.service.js
2026-02-07 22:42:02 +00:00

37 lines
1.1 KiB
JavaScript

const { getRedisClient } = require("./client")
function createRedisClient() {
return getRedisClient()
}
async function getTrendingDealListId(redis, trendingListId) {
if (trendingListId) return String(trendingListId)
const latest = await redis.get("deals:lists:trending:latest")
return latest ? String(latest) : null
}
async function getTrendingDealIds({ trendingListId } = {}) {
const redis = createRedisClient()
try {
const listId = await getTrendingDealListId(redis, trendingListId)
if (!listId) return { trendingListId: null, dealIds: [] }
const key = `deals:lists:trending:${listId}`
const raw = await redis.call("JSON.GET", key, "$.dealIds")
if (!raw) return { trendingListId: listId, dealIds: [] }
const parsed = JSON.parse(raw)
const dealIds = Array.isArray(parsed) ? parsed[0] : []
return {
trendingListId: listId,
dealIds: Array.isArray(dealIds) ? dealIds.map((id) => Number(id)) : [],
}
} catch {
return { trendingListId: null, dealIds: [] }
} finally {}
}
module.exports = { getTrendingDealIds }