summaryrefslogtreecommitdiff
path: root/hooks/server/ci.ts
diff options
context:
space:
mode:
Diffstat (limited to 'hooks/server/ci.ts')
-rw-r--r--hooks/server/ci.ts56
1 files changed, 0 insertions, 56 deletions
diff --git a/hooks/server/ci.ts b/hooks/server/ci.ts
deleted file mode 100644
index 4f0d7ba..0000000
--- a/hooks/server/ci.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import {
- FourOhFourActivityImpl,
- getRequiredEnv,
- HealthCheckActivityImpl,
- type HealthChecker,
- type IFourOhFourActivity,
- type IHealthCheckActivity,
- type ITraceable,
- PenguenoRequest,
- type ServerTrace,
- TraceUtil,
-} from "@emprespresso/pengueno";
-import type { Job } from "@emprespresso/ci-model";
-import {
- healthCheck as _healthCheck,
- type IJobHookActivity,
- type IJobQueuer,
- JobHookActivityImpl,
- LaminarJobQueuer,
-} from "@emprespresso/ci-hooks";
-
-export class CiHookServer {
- constructor(
- healthCheck: HealthChecker = _healthCheck,
- jobQueuer: IJobQueuer<ITraceable<Job, ServerTrace>> = new LaminarJobQueuer(
- getRequiredEnv("LAMINAR_URL").fold((err, val) =>
- err ? "https://ci.liz.coffee" : val,
- ),
- ),
- private readonly healthCheckActivity: IHealthCheckActivity = new HealthCheckActivityImpl(
- healthCheck,
- ),
- private readonly jobHookActivity: IJobHookActivity = new JobHookActivityImpl(
- jobQueuer,
- ),
- private readonly fourOhFourActivity: IFourOhFourActivity = new FourOhFourActivityImpl(),
- ) {}
-
- private route(req: ITraceable<PenguenoRequest, ServerTrace>) {
- const url = new URL(req.get().url);
- if (url.pathname === "/health") {
- return this.healthCheckActivity.checkHealth(req);
- }
- if (url.pathname === "/job") {
- return this.jobHookActivity.processHook(req);
- }
- return this.fourOhFourActivity.fourOhFour(req);
- }
-
- public serve(req: Request): Promise<Response> {
- return PenguenoRequest.from(req)
- .bimap(TraceUtil.withClassTrace(this))
- .map(this.route)
- .get();
- }
-}