Add bet amount and outcome to new comment email
This commit is contained in:
parent
9b98c6f300
commit
dcd3bc759a
|
@ -285,7 +285,6 @@
|
|||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 5px 0;
|
||||
font-weight: bold;
|
||||
"
|
||||
valign="top"
|
||||
>
|
||||
|
@ -302,7 +301,10 @@
|
|||
"
|
||||
alt=""
|
||||
/>
|
||||
{{commentorName}}
|
||||
<span style="font-weight: bold"
|
||||
>{{commentorName}}</span
|
||||
>
|
||||
{{betDescription}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import _ = require('lodash')
|
||||
import { Answer } from '../../common/answer'
|
||||
import { Bet } from '../../common/bet'
|
||||
import { getProbability } from '../../common/calculate'
|
||||
import { Comment } from '../../common/comment'
|
||||
import { Contract } from '../../common/contract'
|
||||
|
@ -21,7 +22,7 @@ type market_resolved_template = {
|
|||
|
||||
const toDisplayResolution = (
|
||||
outcome: string,
|
||||
prob: number,
|
||||
prob?: number,
|
||||
resolutions?: { [outcome: string]: number }
|
||||
) => {
|
||||
if (outcome === 'MKT' && resolutions) return 'MULTI'
|
||||
|
@ -30,7 +31,7 @@ const toDisplayResolution = (
|
|||
YES: 'YES',
|
||||
NO: 'NO',
|
||||
CANCEL: 'N/A',
|
||||
MKT: formatPercent(prob),
|
||||
MKT: formatPercent(prob ?? 0),
|
||||
}[outcome]
|
||||
|
||||
return display === undefined ? `#${outcome}` : display
|
||||
|
@ -144,8 +145,9 @@ export const sendMarketCloseEmail = async (
|
|||
export const sendNewCommentEmail = async (
|
||||
userId: string,
|
||||
commentCreator: User,
|
||||
contract: Contract,
|
||||
comment: Comment,
|
||||
contract: Contract
|
||||
bet: Bet
|
||||
) => {
|
||||
const privateUser = await getPrivateUser(userId)
|
||||
if (
|
||||
|
@ -165,6 +167,11 @@ export const sendNewCommentEmail = async (
|
|||
const { name: commentorName, avatarUrl: commentorAvatarUrl } = commentCreator
|
||||
const { text } = comment
|
||||
|
||||
const { amount, sale, outcome } = bet
|
||||
const betDescription = `${sale ? 'sold' : 'bought'} M$ ${Math.round(
|
||||
amount
|
||||
)} of ${toDisplayResolution(outcome)}`
|
||||
|
||||
const subject = `Comment on ${question}`
|
||||
const from = `${commentorName} <info@manifold.markets>`
|
||||
|
||||
|
@ -178,6 +185,7 @@ export const sendNewCommentEmail = async (
|
|||
comment: text,
|
||||
marketUrl,
|
||||
unsubscribeUrl,
|
||||
betDescription,
|
||||
},
|
||||
{ from }
|
||||
)
|
||||
|
|
|
@ -5,6 +5,7 @@ import * as _ from 'lodash'
|
|||
import { getContract, getUser, getValues } from './utils'
|
||||
import { Comment } from '../../common/comment'
|
||||
import { sendNewCommentEmail } from './emails'
|
||||
import { Bet } from '../../common/bet'
|
||||
|
||||
const firestore = admin.firestore()
|
||||
|
||||
|
@ -23,6 +24,14 @@ export const onCreateComment = functions.firestore
|
|||
const commentCreator = await getUser(comment.userId)
|
||||
if (!commentCreator) return
|
||||
|
||||
const betSnapshot = await firestore
|
||||
.collection('contracts')
|
||||
.doc(contractId)
|
||||
.collection('bets')
|
||||
.doc(comment.betId)
|
||||
.get()
|
||||
const bet = betSnapshot.data() as Bet
|
||||
|
||||
const comments = await getValues<Comment>(
|
||||
firestore.collection('contracts').doc(contractId).collection('comments')
|
||||
)
|
||||
|
@ -34,7 +43,7 @@ export const onCreateComment = functions.firestore
|
|||
|
||||
await Promise.all(
|
||||
recipientUserIds.map((userId) =>
|
||||
sendNewCommentEmail(userId, commentCreator, comment, contract)
|
||||
sendNewCommentEmail(userId, commentCreator, contract, comment, bet)
|
||||
)
|
||||
)
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue
Block a user