From 67af18a105a7964ee9b058654dc8e5704c76cfc1 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Mon, 1 Jul 2024 15:27:16 +0800 Subject: [PATCH] fix: returns a stub score (0) in case score api throws an error --- packages/api/src/jobs/update_home.ts | 2 +- packages/api/src/services/score.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/api/src/jobs/update_home.ts b/packages/api/src/jobs/update_home.ts index e161f967b..ec8222840 100644 --- a/packages/api/src/jobs/update_home.ts +++ b/packages/api/src/jobs/update_home.ts @@ -248,7 +248,7 @@ const rankCandidates = async ( const scores = await scoreClient.getScores(data) // update scores for candidates candidates.forEach((item) => { - item.score = scores[item.id].score || 0 + item.score = scores[item.id]?.score || 0 }) // rank candidates by score in descending order diff --git a/packages/api/src/services/score.ts b/packages/api/src/services/score.ts index 92428cd40..3260bd645 100644 --- a/packages/api/src/services/score.ts +++ b/packages/api/src/services/score.ts @@ -90,9 +90,10 @@ class ScoreClientImpl implements ScoreClient { logError(error) // Returns a stub score (0) in case of an error - return { - [Object.keys(data.items)[0]]: { score: 0 }, - } + return Object.keys(data.items).reduce((acc, itemId) => { + acc[itemId] = { score: 0 } + return acc + }, {} as ScoreApiResponse) } finally { const duration = (Date.now() - start) / 1000 // in seconds latency.observe(duration)