f50b4775a1
* Allow to follow/unfollow markets, backfill as well * remove yarn script edit * add decrement comment * Lint * Decrement follow count on unfollow * Follow/unfollow button logic * Unfollow/follow => heart * Add user to followers in place-bet and sell-shares * Add tracking * Show contract follow modal for first time following * Increment follower count as well * Remove add follow from bet trigger * restore on-create-bet * Add pubsub to dev.sh, show heart on FR, remove from answer trigger
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import * as functions from 'firebase-functions'
|
|
import { getContract, getUser } from './utils'
|
|
import { createCommentOrAnswerOrUpdatedContractNotification } from './create-notification'
|
|
import { Answer } from '../../common/answer'
|
|
|
|
export const onCreateAnswer = functions.firestore
|
|
.document('contracts/{contractId}/answers/{answerNumber}')
|
|
.onCreate(async (change, context) => {
|
|
const { contractId } = context.params as {
|
|
contractId: string
|
|
}
|
|
const { eventId } = context
|
|
const answer = change.data() as Answer
|
|
// Ignore ante answer.
|
|
if (answer.number === 0) return
|
|
|
|
const contract = await getContract(contractId)
|
|
if (!contract)
|
|
throw new Error('Could not find contract corresponding with answer')
|
|
|
|
const answerCreator = await getUser(answer.userId)
|
|
if (!answerCreator) throw new Error('Could not find answer creator')
|
|
await createCommentOrAnswerOrUpdatedContractNotification(
|
|
answer.id,
|
|
'answer',
|
|
'created',
|
|
answerCreator,
|
|
eventId,
|
|
answer.text,
|
|
contract
|
|
)
|
|
})
|