diff options
Diffstat (limited to 'hooks/server.ts')
-rwxr-xr-x | hooks/server.ts | 61 |
1 files changed, 1 insertions, 60 deletions
diff --git a/hooks/server.ts b/hooks/server.ts index 000c391..9a3f716 100755 --- a/hooks/server.ts +++ b/hooks/server.ts @@ -1,5 +1,3 @@ -#!/usr/bin/env -S deno run --allow-env --allow-net --allow-run - import { Either, getRequiredEnv, @@ -20,61 +18,6 @@ interface IHealthCheckActivity<R> { healthCheck(req: R): Promise<Response>; } -class HealthCheckActivity implements IHealthCheckActivity<Traceable<Request>> { - public async healthCheck( - req: Traceable<Request>, - ) { - return await req.bimap(Traceable.withClassTrace(this)) - .map(async (r) => { - const { logger } = r; - try { - getRequiredEnv("LAMINAR_HOST"); - await getStdout(r.map(() => ["laminarc", "show-jobs"])); - const msg = `think im healthy!! (✿˘◡˘) ready to do work~\n`; - logger.log(msg); - return new Response( - msg, - { status: 200 }, - ); - } catch (error) { - logger.error(error); - return new Response( - "oh no, i need to eat more vegetables (。•́︿•̀。)...\n", - { status: 500 }, - ); - } - }).item; - } -} - -const aPost = (req: Traceable<Request>): IEither<Response, Request> => { - const { item: request, logger: _logger } = req; - const logger = _logger.addTracer(() => "[aPost]"); - - if (request.method !== "POST") { - const msg = "that's not how you pet me (⋟﹏⋞) try post instead~"; - logger.warn(msg); - return Either.left(new Response(msg + "\n", { status: 405 })); - } - return Either.right(request); -}; - -type JsonTransformer<JsonT, R> = (json: Traceable<JsonT>) => Either<string, R>; -const aJson = - <BodyT, JsonT = unknown>(jsonTransformer: JsonTransformer<JsonT, BodyT>) => - async (r: Traceable<Request>): Promise<Either<string, BodyT>> => { - const { item: request, logger } = r; - try { - return Either.right<string, JsonT>(await request.json()) - .mapRight(r.move) - .flatMap(jsonTransformer); - } catch (_e) { - const err = "seems to be invalid JSON (>//<) can you fix?"; - logger.warn(err); - return Either.left(err); - } - }; - interface IJobHookActivity<R> { processHook(req: R): Promise<Response>; } @@ -82,9 +25,7 @@ type GetJobRequest = { jobType: string; args: unknown }; class JobHookActivityImpl implements IJobHookActivity<Traceable<Request>> { constructor(private readonly queuer: IJobQueuer<Traceable<Job>>) {} - private getJob<JsonT>( - u: Traceable<JsonT>, - ): Either<string, Job> { + private getJob<JsonT>(u: Traceable<JsonT>): Either<string, Job> { const { logger: _logger, item } = u; const logger = _logger.addTracer(() => "[getJob]"); const couldBeJsonJob = isObject(item) && "arguments" in item && |