import type { ReqHandler } from "@ethicdevs/react-monolith";
import { AppRoute, AppRouteParams } from "../../routes.defs";
import { makePipelineService } from "../../services/pipelines";
import PipelineStageDetailsView, {
PipelineStageDetailsViewProps,
} from "../../views/pipelines/PipelineStageDetailsView";
const getPipelineStageDetailsView: ReqHandler<
AppRouteParams,
AppRoute.REPOSITORY_PIPELINE_STAGE_DETAILS
> = async (request, reply) => {
const { orgSlug, repoSlug, pipelineId, stageId } = request.params;
const pipelineService = makePipelineService({ request, runner: {} });
const pipeline = await pipelineService.getPipeline(pipelineId);
const stages = await pipelineService.getPipelineStages(pipelineId);
const stage = stages.find((s) => String(s.id) === String(stageId)) ?? null;
const logs =
stage != null
? await pipelineService.getPipelineStageLogs(pipelineId, String(stageId))
: [];
const reqHandler = reply.makeRequestHandler(request, reply);
return reqHandler<PipelineStageDetailsViewProps>(
PipelineStageDetailsView.name,
{
pipeline,
stage,
logs,
orgSlug,
repoSlug,
},
);
};
export default getPipelineStageDetailsView;