Ship without touching prod and with some logs.
This commit is contained in:
parent
8e1ae2b7ff
commit
6b96b1d6a1
|
@ -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 }) => {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user