Reuse getFunctionUrl in server code

This commit is contained in:
Marshall Polaris 2022-07-10 14:33:14 -07:00
parent 24331d5b88
commit 6978c5b1b3
3 changed files with 19 additions and 13 deletions

View File

@ -613,7 +613,7 @@
>our Discord</a >our Discord</a
>! Or, >! Or,
<a <a
href="https://unsubscribe-nggbo3neva-uc.a.run.app?id={{userId}}&type=market-resolve" href="{{unsubscribeUrl}}"
style=" style="
font-family: 'Helvetica Neue', Helvetica, Arial, font-family: 'Helvetica Neue', Helvetica, Arial,
sans-serif; sans-serif;

View File

@ -635,7 +635,7 @@
>our Discord</a >our Discord</a
>! Or, >! Or,
<a <a
href="https://unsubscribe-nggbo3neva-uc.a.run.app?id={{userId}}&type=market-resolved" href="{{unsubscribeUrl}}"
style=" style="
font-family: 'Helvetica Neue', Helvetica, Arial, font-family: 'Helvetica Neue', Helvetica, Arial,
sans-serif; sans-serif;

View File

@ -1,4 +1,4 @@
import { DOMAIN, ENV_CONFIG } from '../../common/envs/constants' import { DOMAIN } from '../../common/envs/constants'
import { Answer } from '../../common/answer' import { Answer } from '../../common/answer'
import { Bet } from '../../common/bet' import { Bet } from '../../common/bet'
import { getProbability } from '../../common/calculate' import { getProbability } from '../../common/calculate'
@ -16,6 +16,9 @@ import { formatNumericProbability } from '../../common/pseudo-numeric'
import { sendTemplateEmail } from './send-email' import { sendTemplateEmail } from './send-email'
import { getPrivateUser, getUser } from './utils' import { getPrivateUser, getUser } from './utils'
import { getFunctionUrl } from '../../common/api'
const UNSUBSCRIBE_ENDPOINT = getFunctionUrl('unsubscribe')
export const sendMarketResolutionEmail = async ( export const sendMarketResolutionEmail = async (
userId: string, userId: string,
@ -53,6 +56,9 @@ export const sendMarketResolutionEmail = async (
? ` (plus ${formatMoney(creatorPayout)} in commissions)` ? ` (plus ${formatMoney(creatorPayout)} in commissions)`
: '' : ''
const emailType = 'market-resolved'
const unsubscribeUrl = `${UNSUBSCRIBE_ENDPOINT}?id=${userId}&type=${emailType}`
const templateData: market_resolved_template = { const templateData: market_resolved_template = {
userId: user.id, userId: user.id,
name: user.name, name: user.name,
@ -62,6 +68,7 @@ export const sendMarketResolutionEmail = async (
investment: `${Math.floor(investment)}`, investment: `${Math.floor(investment)}`,
payout: `${Math.floor(payout)}${creatorPayoutText}`, payout: `${Math.floor(payout)}${creatorPayoutText}`,
url: `https://${DOMAIN}/${creator.username}/${contract.slug}`, url: `https://${DOMAIN}/${creator.username}/${contract.slug}`,
unsubscribeUrl,
} }
// Modify template here: // Modify template here:
@ -85,6 +92,7 @@ type market_resolved_template = {
investment: string investment: string
payout: string payout: string
url: string url: string
unsubscribeUrl: string
} }
const toDisplayResolution = ( const toDisplayResolution = (
@ -141,8 +149,7 @@ export const sendWelcomeEmail = async (
const firstName = name.split(' ')[0] const firstName = name.split(' ')[0]
const emailType = 'generic' const emailType = 'generic'
const { cloudRunId, cloudRunRegion } = ENV_CONFIG const unsubscribeLink = `${UNSUBSCRIBE_ENDPOINT}?id=${userId}&type=${emailType}`
const unsubscribeLink = `https://unsubscribe-${cloudRunId}-${cloudRunRegion}.a.run.app?id=${userId}&type=${emailType}`
await sendTemplateEmail( await sendTemplateEmail(
privateUser.email, privateUser.email,
@ -174,8 +181,7 @@ export const sendOneWeekBonusEmail = async (
const firstName = name.split(' ')[0] const firstName = name.split(' ')[0]
const emailType = 'generic' const emailType = 'generic'
const { cloudRunId, cloudRunRegion } = ENV_CONFIG const unsubscribeLink = `${UNSUBSCRIBE_ENDPOINT}?id=${userId}&type=${emailType}`
const unsubscribeLink = `https://unsubscribe-${cloudRunId}-${cloudRunRegion}.a.run.app?id=${userId}&type=${emailType}`
await sendTemplateEmail( await sendTemplateEmail(
privateUser.email, privateUser.email,
@ -207,8 +213,7 @@ export const sendThankYouEmail = async (
const firstName = name.split(' ')[0] const firstName = name.split(' ')[0]
const emailType = 'generic' const emailType = 'generic'
const { cloudRunId, cloudRunRegion } = ENV_CONFIG const unsubscribeLink = `${UNSUBSCRIBE_ENDPOINT}?id=${userId}&type=${emailType}`
const unsubscribeLink = `https://unsubscribe-${cloudRunId}-${cloudRunRegion}.a.run.app?id=${userId}&type=${emailType}`
await sendTemplateEmail( await sendTemplateEmail(
privateUser.email, privateUser.email,
@ -242,6 +247,8 @@ export const sendMarketCloseEmail = async (
const { question, slug, volume, mechanism, collectedFees } = contract const { question, slug, volume, mechanism, collectedFees } = contract
const url = `https://${DOMAIN}/${username}/${slug}` const url = `https://${DOMAIN}/${username}/${slug}`
const emailType = 'market-resolve'
const unsubscribeUrl = `${UNSUBSCRIBE_ENDPOINT}?id=${userId}&type=${emailType}`
await sendTemplateEmail( await sendTemplateEmail(
privateUser.email, privateUser.email,
@ -250,6 +257,7 @@ export const sendMarketCloseEmail = async (
{ {
question, question,
url, url,
unsubscribeUrl,
userId, userId,
name: firstName, name: firstName,
volume: formatMoney(volume), volume: formatMoney(volume),
@ -281,8 +289,7 @@ export const sendNewCommentEmail = async (
const { question, creatorUsername, slug } = contract const { question, creatorUsername, slug } = contract
const marketUrl = `https://${DOMAIN}/${creatorUsername}/${slug}#${comment.id}` const marketUrl = `https://${DOMAIN}/${creatorUsername}/${slug}#${comment.id}`
const emailType = 'market-comment' const emailType = 'market-comment'
const { cloudRunId, cloudRunRegion } = ENV_CONFIG const unsubscribeUrl = `${UNSUBSCRIBE_ENDPOINT}?id=${userId}&type=${emailType}`
const unsubscribeUrl = `https://unsubscribe-${cloudRunId}-${cloudRunRegion}.a.run.app?id=${userId}&type=${emailType}`
const { name: commentorName, avatarUrl: commentorAvatarUrl } = commentCreator const { name: commentorName, avatarUrl: commentorAvatarUrl } = commentCreator
const { text } = comment const { text } = comment
@ -364,8 +371,7 @@ export const sendNewAnswerEmail = async (
const marketUrl = `https://${DOMAIN}/${creatorUsername}/${slug}` const marketUrl = `https://${DOMAIN}/${creatorUsername}/${slug}`
const emailType = 'market-answer' const emailType = 'market-answer'
const { cloudRunId, cloudRunRegion } = ENV_CONFIG const unsubscribeUrl = `${UNSUBSCRIBE_ENDPOINT}?id=${userId}&type=${emailType}`
const unsubscribeUrl = `https://unsubscribe-${cloudRunId}-${cloudRunRegion}.a.run.app?id=${userId}&type=${emailType}`
const subject = `New answer on ${question}` const subject = `New answer on ${question}`
const from = `${name} <info@manifold.markets>` const from = `${name} <info@manifold.markets>`