Fix firebase query for market creators

This commit is contained in:
Ian Philips 2022-10-11 16:59:47 -06:00
parent a71c3d6a4a
commit 4215821f35

View File

@ -32,6 +32,9 @@ async function main() {
user.achievements = await awardBettingStreakBadges(user) user.achievements = await awardBettingStreakBadges(user)
console.log('Added achievements to user', user.id) console.log('Added achievements to user', user.id)
// going to ignore backfilling the proven correct badges for now // going to ignore backfilling the proven correct badges for now
} else {
// Make corrections to existing achievements
await awardMarketCreatorBadges(user)
} }
}) })
) )
@ -67,12 +70,11 @@ async function removeErrorBadges(user: User) {
async function awardMarketCreatorBadges(user: User) { async function awardMarketCreatorBadges(user: User) {
// Award market maker badges // Award market maker badges
const contracts = await getValues<Contract>( const contracts = (
firestore await getValues<Contract>(
.collection(`contracts`) firestore.collection(`contracts`).where('creatorId', '==', user.id)
.where('creatorId', '==', user.id) )
.where('resolution', '!=', 'CANCEL') ).filter((c) => !c.resolution || c.resolution != 'CANCEL')
)
const achievements = { const achievements = {
...user.achievements, ...user.achievements,
@ -81,7 +83,12 @@ async function awardMarketCreatorBadges(user: User) {
}, },
} }
for (const threshold of marketCreatorBadgeRarityThresholds) { for (const threshold of marketCreatorBadgeRarityThresholds) {
const alreadyHasBadge = user.achievements.marketCreator?.badges.some(
(b) => b.data.totalContractsCreated === threshold
)
if (alreadyHasBadge) continue
if (contracts.length >= threshold) { if (contracts.length >= threshold) {
console.log(`User ${user.id} has at least ${threshold} contracts`)
const badge = { const badge = {
type: 'MARKET_CREATOR', type: 'MARKET_CREATOR',
name: 'Market Creator', name: 'Market Creator',