From 6b96b1d6a1fd3bef895b9ac0e82d0c85b57d325c Mon Sep 17 00:00:00 2001 From: Pico2x Date: Mon, 12 Sep 2022 20:50:12 +0100 Subject: [PATCH] Ship without touching prod and with some logs. --- functions/src/update-metrics.ts | 51 +++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/functions/src/update-metrics.ts b/functions/src/update-metrics.ts index 273cd098..4352e872 100644 --- a/functions/src/update-metrics.ts +++ b/functions/src/update-metrics.ts @@ -57,6 +57,7 @@ export async function updateMetricsCore() { const now = Date.now() const betsByContract = groupBy(bets, (bet) => bet.contractId) + const contractUpdates = contracts .filter((contract) => contract.id) .map((contract) => { @@ -179,32 +180,38 @@ export async function updateMetricsCore() { ) log(`Updated metrics for ${users.length} users.`) - const groupUpdates = groups.map((group, index) => { - const groupContractIds = contractsByGroup[index] as GroupContractDoc[] - const groupContracts = groupContractIds.map( - (e) => contractsById[e.contractId] - ) - const bets = groupContracts.map((e) => { - return betsByContract[e.id] ?? [] - }) + try { + const groupUpdates = groups.map((group, index) => { + const groupContractIds = contractsByGroup[index] as GroupContractDoc[] + const groupContracts = groupContractIds.map( + (e) => contractsById[e.contractId] + ) + const bets = groupContracts.map((e) => { + return betsByContract[e.id] ?? [] + }) - const creatorScores = scoreCreators(groupContracts) - const traderScores = scoreTraders(groupContracts, bets) + const creatorScores = scoreCreators(groupContracts) + const traderScores = scoreTraders(groupContracts, bets) - const topTraderScores = topUserScores(traderScores) - const topCreatorScores = topUserScores(creatorScores) + const topTraderScores = topUserScores(traderScores) + const topCreatorScores = topUserScores(creatorScores) - return { - doc: firestore.collection('groups').doc(group.id), - fields: { - cachedLeaderboard: { - topTraders: topTraderScores, - topCreators: topCreatorScores, + return { + doc: firestore.collection('groups').doc(group.id), + fields: { + cachedLeaderboard: { + topTraders: topTraderScores, + topCreators: topCreatorScores, + }, }, - }, - } - }) - await writeAsync(firestore, groupUpdates) + } + }) + // Shipping without this for now to check it's working as intended + console.log('Group Leaderboard Updates', groupUpdates) + //await writeAsync(firestore, groupUpdates) + } catch (e) { + console.log('Error While Updating Group Leaderboards', e) + } } const topUserScores = (scores: { [userId: string]: number }) => {