Ship without touching prod and with some logs.

This commit is contained in:
Pico2x 2022-09-12 20:50:12 +01:00
parent 8e1ae2b7ff
commit 6b96b1d6a1

View File

@ -57,6 +57,7 @@ export async function updateMetricsCore() {
const now = Date.now() const now = Date.now()
const betsByContract = groupBy(bets, (bet) => bet.contractId) const betsByContract = groupBy(bets, (bet) => bet.contractId)
const contractUpdates = contracts const contractUpdates = contracts
.filter((contract) => contract.id) .filter((contract) => contract.id)
.map((contract) => { .map((contract) => {
@ -179,32 +180,38 @@ export async function updateMetricsCore() {
) )
log(`Updated metrics for ${users.length} users.`) log(`Updated metrics for ${users.length} users.`)
const groupUpdates = groups.map((group, index) => { try {
const groupContractIds = contractsByGroup[index] as GroupContractDoc[] const groupUpdates = groups.map((group, index) => {
const groupContracts = groupContractIds.map( const groupContractIds = contractsByGroup[index] as GroupContractDoc[]
(e) => contractsById[e.contractId] const groupContracts = groupContractIds.map(
) (e) => contractsById[e.contractId]
const bets = groupContracts.map((e) => { )
return betsByContract[e.id] ?? [] const bets = groupContracts.map((e) => {
}) return betsByContract[e.id] ?? []
})
const creatorScores = scoreCreators(groupContracts) const creatorScores = scoreCreators(groupContracts)
const traderScores = scoreTraders(groupContracts, bets) const traderScores = scoreTraders(groupContracts, bets)
const topTraderScores = topUserScores(traderScores) const topTraderScores = topUserScores(traderScores)
const topCreatorScores = topUserScores(creatorScores) const topCreatorScores = topUserScores(creatorScores)
return { return {
doc: firestore.collection('groups').doc(group.id), doc: firestore.collection('groups').doc(group.id),
fields: { fields: {
cachedLeaderboard: { cachedLeaderboard: {
topTraders: topTraderScores, topTraders: topTraderScores,
topCreators: topCreatorScores, topCreators: topCreatorScores,
},
}, },
}, }
} })
}) // Shipping without this for now to check it's working as intended
await writeAsync(firestore, groupUpdates) 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 }) => { const topUserScores = (scores: { [userId: string]: number }) => {