summaryrefslogtreecommitdiff
path: root/src/api.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/api.ts')
-rw-r--r--src/api.ts21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/api.ts b/src/api.ts
index 6132882..946826b 100644
--- a/src/api.ts
+++ b/src/api.ts
@@ -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;
};