mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-09 15:35:22 +02:00
noop postmark sends if API key is not defined
This commit is contained in:
parent
4906555e1f
commit
f3ba272745
6 changed files with 30 additions and 10 deletions
|
@ -1,6 +1,6 @@
|
|||
import { ServerClient } from 'postmark'
|
||||
import env from '../../env'
|
||||
|
||||
const postmark = new ServerClient(env.NX_POSTMARK_API_TOKEN)
|
||||
const postmark = env.NX_POSTMARK_API_TOKEN ? new ServerClient(env.NX_POSTMARK_API_TOKEN) : undefined
|
||||
|
||||
export default postmark
|
||||
|
|
|
@ -74,7 +74,7 @@ const envSchema = z.object({
|
|||
|
||||
NX_POSTMARK_FROM_ADDRESS: z.string().default('account@maybe.co'),
|
||||
NX_POSTMARK_REPLY_TO_ADDRESS: z.string().default('support@maybe.co'),
|
||||
NX_POSTMARK_API_TOKEN: z.string().default('REPLACE_THIS'),
|
||||
NX_POSTMARK_API_TOKEN: z.string().optional(),
|
||||
})
|
||||
|
||||
const env = envSchema.parse(process.env)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { ServerClient } from 'postmark'
|
||||
import env from '../../env'
|
||||
|
||||
const postmark = new ServerClient(env.NX_POSTMARK_API_TOKEN)
|
||||
const postmark = env.NX_POSTMARK_API_TOKEN ? new ServerClient(env.NX_POSTMARK_API_TOKEN) : undefined
|
||||
|
||||
export default postmark
|
||||
|
|
|
@ -29,7 +29,7 @@ const envSchema = z.object({
|
|||
|
||||
NX_POSTMARK_FROM_ADDRESS: z.string().default('account@maybe.co'),
|
||||
NX_POSTMARK_REPLY_TO_ADDRESS: z.string().default('support@maybe.co'),
|
||||
NX_POSTMARK_API_TOKEN: z.string().default('REPLACE_THIS'),
|
||||
NX_POSTMARK_API_TOKEN: z.string().optional(),
|
||||
NX_STRIPE_SECRET_KEY: z.string().default('sk_test_REPLACE_THIS'),
|
||||
|
||||
NX_CDN_PRIVATE_BUCKET: z.string().default('REPLACE_THIS'),
|
||||
|
|
|
@ -22,7 +22,7 @@ export interface IEmailService {
|
|||
export class EmailService implements IEmailService {
|
||||
constructor(
|
||||
private readonly logger: Logger,
|
||||
private readonly postmark: PostmarkServerClient,
|
||||
private readonly postmark: PostmarkServerClient | undefined,
|
||||
private readonly defaultAddresses: { from: string; replyTo?: string }
|
||||
) {}
|
||||
|
||||
|
@ -85,6 +85,11 @@ export class EmailService implements IEmailService {
|
|||
message.TemplateModel
|
||||
)
|
||||
|
||||
if (!this.postmark) {
|
||||
this.logger.info('Postmark API key not provided, skipping email send')
|
||||
return undefined as unknown as MessageSendingResponse
|
||||
}
|
||||
|
||||
return await this.postmark.sendEmailWithTemplate(message)
|
||||
}
|
||||
|
||||
|
@ -94,6 +99,11 @@ export class EmailService implements IEmailService {
|
|||
{ text: message.TextBody, html: message.HtmlBody }
|
||||
)
|
||||
|
||||
if (!this.postmark) {
|
||||
this.logger.info('Postmark API key not provided, skipping email send')
|
||||
return undefined as unknown as MessageSendingResponse
|
||||
}
|
||||
|
||||
return await this.postmark.sendEmail(message)
|
||||
}
|
||||
|
||||
|
@ -108,9 +118,13 @@ export class EmailService implements IEmailService {
|
|||
|
||||
return (
|
||||
await Promise.all(
|
||||
chunk(messages, 500).map((chunk) =>
|
||||
this.postmark.sendEmailBatchWithTemplates(chunk)
|
||||
)
|
||||
chunk(messages, 500).map((chunk) => {
|
||||
if (!this.postmark) {
|
||||
this.logger.info('Postmark API key not provided, skipping email send')
|
||||
return [] as MessageSendingResponse[]
|
||||
}
|
||||
return this.postmark.sendEmailBatchWithTemplates(chunk)
|
||||
})
|
||||
)
|
||||
).flat()
|
||||
}
|
||||
|
@ -124,7 +138,13 @@ export class EmailService implements IEmailService {
|
|||
|
||||
return (
|
||||
await Promise.all(
|
||||
chunk(messages, 500).map((chunk) => this.postmark.sendEmailBatch(chunk))
|
||||
chunk(messages, 500).map((chunk) => {
|
||||
if (!this.postmark) {
|
||||
this.logger.info('Postmark API key not provided, skipping email send')
|
||||
return [] as MessageSendingResponse[]
|
||||
}
|
||||
return this.postmark.sendEmailBatch(chunk)
|
||||
})
|
||||
)
|
||||
).flat()
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"scripts": {
|
||||
"dev": "nx run-many --target serve --projects=client,server,workers --parallel --host 0.0.0.0 --nx-bail=true --maxParallel=100",
|
||||
"dev:services": "COMPOSE_PROFILES=services docker-compose up -d",
|
||||
"dev:services:all": "COMPOSE_PROFILES=services,ngrok,stripe docker-compose up",
|
||||
"dev:services:all": "COMPOSE_PROFILES=services,ngrok docker-compose up",
|
||||
"dev:workers:test": "nx test workers --skip-nx-cache --runInBand",
|
||||
"dev:server:test": "nx test server --skip-nx-cache --runInBand",
|
||||
"dev:test:unit": "yarn dev:ci:test --testPathPattern='^(?!.*integration).*$' --verbose --skip-nx-cache",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue