.ts
TypeScript
(application/typescript)
// 1st-party
import type { ReqHandler } from "@ethicdevs/react-monolith";
// app
import { AppRoute, AppRouteParams } from "../../routes.defs";
import { makePipelineService } from "../../services/pipelines";
import PipelineArtefactsView, {
  PipelineArtefactsViewProps,
} from "../../views/pipelines/PipelineArtefactsView";

const getPipelineArtefactsView: ReqHandler<
  AppRouteParams,
  AppRoute.REPOSITORY_PIPELINE_ARTEFACTS
> = async (request, reply) => {
  const { orgSlug, repoSlug, pipelineId } = request.params;
  const pipelineService = makePipelineService({ request, runner: {} });
  const artefacts = await pipelineService.getPipelineArtefacts(pipelineId);
  const pipeline = await pipelineService.getPipeline(pipelineId);

  const reqHandler = reply.makeRequestHandler(request, reply);
  return reqHandler<PipelineArtefactsViewProps>(PipelineArtefactsView.name, {
    artefacts,
    pipeline,
    orgSlug,
    repoSlug,
  });
};

export default getPipelineArtefactsView;