summaryrefslogtreecommitdiff
path: root/src/api.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/api.ts')
-rw-r--r--src/api.ts9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/api.ts b/src/api.ts
index cfb446a..722dc70 100644
--- a/src/api.ts
+++ b/src/api.ts
@@ -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****";