Update group field names
This commit is contained in:
parent
4d3dcdaf72
commit
57f59ebfc4
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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),
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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 }[] =
|
||||
|
|
|
@ -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 }
|
||||
|
|
Loading…
Reference in New Issue
Block a user