From 57f59ebfc475ed4b75567b88e4af91e7f19fce21 Mon Sep 17 00:00:00 2001 From: Ian Philips Date: Fri, 2 Sep 2022 16:35:58 -0600 Subject: [PATCH] Update group field names --- common/group.ts | 4 ++-- functions/src/create-group.ts | 4 ++-- functions/src/on-update-group.ts | 8 ++++---- functions/src/scripts/convert-tag-to-group.ts | 4 ++-- functions/src/scripts/update-groups.ts | 18 +++++++++++++++++- web/components/contract-search.tsx | 4 ++-- web/pages/tournaments/index.tsx | 2 +- 7 files changed, 30 insertions(+), 14 deletions(-) diff --git a/common/group.ts b/common/group.ts index 528df4a0..5c716dba 100644 --- a/common/group.ts +++ b/common/group.ts @@ -7,8 +7,8 @@ export type Group = { createdTime: number mostRecentActivityTime: number anyoneCanJoin: boolean - numContracts: number - numMembers: number + totalContracts: number + totalMembers: number aboutPostId?: string chatDisabled?: boolean mostRecentContractAddedTime?: number diff --git a/functions/src/create-group.ts b/functions/src/create-group.ts index dc61c587..fc64aeff 100644 --- a/functions/src/create-group.ts +++ b/functions/src/create-group.ts @@ -59,8 +59,8 @@ export const creategroup = newEndpoint({}, async (req, auth) => { mostRecentActivityTime: Date.now(), // TODO: allow users to add contract ids on group creation anyoneCanJoin, - numContracts: 0, - numMembers: memberIds.length, + totalContracts: 0, + totalMembers: memberIds.length, } await groupRef.create(group) diff --git a/functions/src/on-update-group.ts b/functions/src/on-update-group.ts index 07f3b5e9..93fb5550 100644 --- a/functions/src/on-update-group.ts +++ b/functions/src/on-update-group.ts @@ -31,7 +31,7 @@ export const onCreateGroupContract = functions.firestore .doc(groupId) .update({ mostRecentContractAddedTime: Date.now(), - numContracts: admin.firestore.FieldValue.increment(1), + totalContracts: admin.firestore.FieldValue.increment(1), }) }) @@ -45,7 +45,7 @@ export const onDeleteGroupContract = functions.firestore .doc(groupId) .update({ mostRecentContractAddedTime: Date.now(), - numContracts: admin.firestore.FieldValue.increment(-1), + totalContracts: admin.firestore.FieldValue.increment(-1), }) }) @@ -59,7 +59,7 @@ export const onCreateGroupMember = functions.firestore .doc(groupId) .update({ mostRecentActivityTime: Date.now(), - numMembers: admin.firestore.FieldValue.increment(1), + totalMembers: admin.firestore.FieldValue.increment(1), }) }) @@ -73,7 +73,7 @@ export const onDeleteGroupMember = functions.firestore .doc(groupId) .update({ mostRecentActivityTime: Date.now(), - numMembers: admin.firestore.FieldValue.increment(-1), + totalMembers: admin.firestore.FieldValue.increment(-1), }) }) diff --git a/functions/src/scripts/convert-tag-to-group.ts b/functions/src/scripts/convert-tag-to-group.ts index 64ba2431..3240357e 100644 --- a/functions/src/scripts/convert-tag-to-group.ts +++ b/functions/src/scripts/convert-tag-to-group.ts @@ -39,8 +39,8 @@ const createGroup = async ( createdTime: now, mostRecentActivityTime: now, anyoneCanJoin: true, - numContracts: contracts.length, - numMembers: 1, + totalContracts: contracts.length, + totalMembers: 1, } await groupRef.create(group) // create a GroupMemberDoc for the creator diff --git a/functions/src/scripts/update-groups.ts b/functions/src/scripts/update-groups.ts index 3c10e1c1..f3724236 100644 --- a/functions/src/scripts/update-groups.ts +++ b/functions/src/scripts/update-groups.ts @@ -67,7 +67,23 @@ const convertGroupFieldsToGroupDocuments = async () => { } } +const updateTotalContractsAndMembers = async () => { + const groups = await getGroups() + for (const group of groups) { + log('updating group total contracts and members', group.slug) + const groupRef = admin.firestore().collection('groups').doc(group.id) + const totalMembers = (await groupRef.collection('groupMembers').get()).size + const totalContracts = (await groupRef.collection('groupContracts').get()) + .size + await groupRef.update({ + totalMembers, + totalContracts, + }) + } +} + if (require.main === module) { initAdmin() - convertGroupFieldsToGroupDocuments() + // convertGroupFieldsToGroupDocuments() + updateTotalContractsAndMembers() } diff --git a/web/components/contract-search.tsx b/web/components/contract-search.tsx index 5bcc7f30..a0396d2e 100644 --- a/web/components/contract-search.tsx +++ b/web/components/contract-search.tsx @@ -282,8 +282,8 @@ function ContractSearchControls(props: { : DEFAULT_CATEGORY_GROUPS.map((g) => g.slug) const memberPillGroups = sortBy( - memberGroups.filter((group) => group.numContracts > 0), - (group) => group.numContracts + memberGroups.filter((group) => group.totalContracts > 0), + (group) => group.totalContracts ).reverse() const pillGroups: { name: string; slug: string }[] = diff --git a/web/pages/tournaments/index.tsx b/web/pages/tournaments/index.tsx index 0817d562..9bfdfb89 100644 --- a/web/pages/tournaments/index.tsx +++ b/web/pages/tournaments/index.tsx @@ -122,7 +122,7 @@ export async function getStaticProps() { const markets = Object.fromEntries(groups.map((g, i) => [g.id, contracts[i]])) const groupMap = keyBy(groups, 'id') - const numPeople = mapValues(groupMap, (g) => g?.numMembers) + const numPeople = mapValues(groupMap, (g) => g?.totalMembers) const slugs = mapValues(groupMap, 'slug') return { props: { markets, numPeople, slugs }, revalidate: 60 * 10 }