diff options
Diffstat (limited to 'src/api.ts')
-rw-r--r-- | src/api.ts | 21 |
1 files changed, 8 insertions, 13 deletions
@@ -1,25 +1,20 @@ import { perform } from "./email"; -import type { EmailJob } from "./job"; +import { redactJob, type EmailJob } from "./job"; import { ConsoleLogger } from "./logger"; export const main = (port: number) => { const server = Bun.serve({ port, async fetch(req) { - ConsoleLogger.log(`Received request: ${req.url}`)(); + ConsoleLogger.info(`Received request: ${req.url}`)(); const url = new URL(req.url); if (req.method === "POST" && url.pathname === "/api/email") { const job: EmailJob = await req.json(); - - const jobInsensitive = structuredClone(job); - jobInsensitive.from.username = "****REDACTED****"; - jobInsensitive.from.password = "****REDACTED****"; - jobInsensitive.to.username = "****REDACTED****"; - jobInsensitive.to.password = "****REDACTED****"; + const jobInsensitive = redactJob(job); const uuid = crypto.randomUUID(); - ConsoleLogger.log( + ConsoleLogger.info( `[${uuid}] Received email job: ${JSON.stringify(jobInsensitive)}`, )(); @@ -28,18 +23,18 @@ export const main = (port: number) => { .then((result) => { if (result._tag === "Left") { const error = result.left; - ConsoleLogger.log( + ConsoleLogger.warn( `[${uuid}] job failure due to ${error.message}`, )(); return new Response(error.message, { status: 400, }); } - ConsoleLogger.log(`[${uuid}] success`)(); + ConsoleLogger.info(`[${uuid}] success`)(); return Response.json({ success: true }); }) .catch((e) => { - ConsoleLogger.log(`[${uuid}] internal failure due to ${e}`)(); + ConsoleLogger.error(`[${uuid}] internal failure due to ${e}`)(); return new Response(e.message, { status: 500, }); @@ -48,6 +43,6 @@ export const main = (port: number) => { return new Response("404!", { status: 404 }); }, }); - ConsoleLogger.log(`Listening on port ${port}`)(); + ConsoleLogger.info(`Listening on port ${port}`)(); return server; }; |