diff options
Diffstat (limited to 'src/api.ts')
-rw-r--r-- | src/api.ts | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -1,5 +1,5 @@ +import { transformDurations } from "./duration"; import { perform } from "./email"; -import type { EmailJob } from "./job"; import { ConsoleLogger } from "./logger"; export const main = (port: number) => { @@ -10,7 +10,12 @@ export const main = (port: number) => { const url = new URL(req.url); if (req.method === "POST" && url.pathname === "/api/email") { - const job: EmailJob = await req.json(); + const prevalidatedJob = transformDurations(await req.json()); + if (prevalidatedJob._tag === "Left") { + return new Response(prevalidatedJob.left, { status: 400 }); + } + const job = prevalidatedJob.right; + const jobInsensitive = structuredClone(job); jobInsensitive.from.username = "****REDACTED****"; jobInsensitive.from.password = "****REDACTED****"; |