Skip to content

Commit

Permalink
feat: add support for exclude_params query parameter to exclude param (
Browse files Browse the repository at this point in the history
  • Loading branch information
zxt-tzx committed Jul 25, 2023
1 parent c5f498a commit a274a37
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
14 changes: 10 additions & 4 deletions backend/src/email/middlewares/email-transactional.middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,15 @@ export const InitEmailTransactionalMiddleware = (
}
type ReqBodyWithId = ReqBody & { emailMessageTransactionalId: string }

function convertMessageModelToResponse(message: EmailMessageTransactional) {
function convertMessageModelToResponse(
message: EmailMessageTransactional,
excludeParams = false
) {
return {
id: message.id,
from: message.from,
recipient: message.recipient,
params: message.params,
params: excludeParams ? undefined : message.params,
attachments_metadata: message.attachmentsMetadata,
status: message.status,
error_code: message.errorCode,
Expand Down Expand Up @@ -214,7 +217,8 @@ export const InitEmailTransactionalMiddleware = (
async function listMessages(req: Request, res: Response): Promise<void> {
// validation from Joi doesn't carry over into type safety here
// following code transforms query params into type-safe arguments for EmailTransactionalService
const { limit, offset, status, created_at, sort_by, tag } = req.query
const { limit, offset, status, created_at, sort_by, tag, exclude_params } =
req.query
const userId: string = req.session?.user?.id.toString() // id is number in session; convert to string for tests to pass (weird)
const filter = created_at ? { createdAt: created_at } : undefined
const sortBy = sort_by?.toString().replace(/[+-]/, '')
Expand All @@ -233,7 +237,9 @@ export const InitEmailTransactionalMiddleware = (
})
res.status(200).json({
has_more: hasMore,
data: messages.map(convertMessageModelToResponse),
data: messages.map((m) =>
convertMessageModelToResponse(m, exclude_params as unknown as boolean)
),
})
}

Expand Down
1 change: 1 addition & 0 deletions backend/src/email/routes/email-transactional.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export const InitEmailTransactionalRoute = (
limit: Joi.number().integer().min(1).max(1000).default(10),
offset: Joi.number().integer().min(0).default(0),
tag: Joi.string().max(255),
exclude_params: Joi.boolean().default(false),
status: Joi.string()
.uppercase()
.valid(...Object.values(TransactionalEmailMessageStatus)),
Expand Down

0 comments on commit a274a37

Please sign in to comment.