diff options
author | Elizabeth Hunt <me@liz.coffee> | 2025-08-17 23:50:24 -0700 |
---|---|---|
committer | Elizabeth Hunt <me@liz.coffee> | 2025-08-17 23:53:38 -0700 |
commit | 1a4fc9535a89b58e8b67c8996ade0b833116af3a (patch) | |
tree | d16f3129d7bb69f204bba8422e909354195a0042 /src/api.ts | |
parent | 157dc327e8fe63541b517cfbeeaf202a3e8553a5 (diff) | |
download | uptime-1a4fc9535a89b58e8b67c8996ade0b833116af3a.tar.gz uptime-1a4fc9535a89b58e8b67c8996ade0b833116af3a.zip |
Move to pengueno.
Diffstat (limited to 'src/api.ts')
-rw-r--r-- | src/api.ts | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/src/api.ts b/src/api.ts deleted file mode 100644 index 6f7db38..0000000 --- a/src/api.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { perform } from "./email"; -import { redactJob, type EmailJob } from "./job"; -import { ConsoleLogger, type Logger } from "./logger"; - -export const main = (port: number) => { - const server = Bun.serve({ - port, - async fetch(req) { - 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 = redactJob(job); - - const uuid = crypto.randomUUID(); - const logger: Logger = { - info: (message) => ConsoleLogger.info(`[${uuid}] ${message}`), - warn: (message) => ConsoleLogger.warn(`[${uuid}] ${message}`), - error: (message) => ConsoleLogger.error(`[${uuid}] ${message}`), - } - logger.info( - `Received email job: ${JSON.stringify(jobInsensitive)}`, - )(); - - const performEmailTest = perform(job, undefined, logger)(); - return performEmailTest - .then((result) => { - if (result._tag === "Left") { - const error = result.left; - logger.warn( - `job failure due to ${error.message}`, - )(); - return new Response(error.message, { - status: 400, - }); - } - logger.info('success')(); - return Response.json({ success: true }); - }) - .catch((e) => { - logger.error(`internal failure due to ${e}`)(); - return new Response(e.message, { - status: 500, - }); - }); - } - return new Response("404!", { status: 404 }); - }, - }); - ConsoleLogger.info(`Listening on port ${port}`)(); - return server; -}; |