32 lines
803 B
TypeScript
32 lines
803 B
TypeScript
import { Contract } from '../../common/lib/contract'
|
|
import { User } from '../../common/lib/user'
|
|
import * as admin from 'firebase-admin'
|
|
import { FieldValue } from 'firebase-admin/firestore'
|
|
|
|
const firestore = admin.firestore()
|
|
|
|
export const addUserToContractFollowers = async (
|
|
contract: Contract,
|
|
user: User
|
|
) => {
|
|
const followerDoc = await firestore
|
|
.collection(`contracts/${contract.id}/follows`)
|
|
.doc(user.id)
|
|
.get()
|
|
if (followerDoc.exists) return
|
|
await firestore
|
|
.collection(`contracts/${contract.id}/follows`)
|
|
.doc(user.id)
|
|
.set({
|
|
id: user.id,
|
|
createdTime: Date.now(),
|
|
})
|
|
// TODO: decrement for unfollows
|
|
await firestore
|
|
.collection(`contracts`)
|
|
.doc(contract.id)
|
|
.update({
|
|
followerCount: FieldValue.increment(1),
|
|
})
|
|
}
|