import type { PersistedRunState } from "@codemation/core"; import { inject } from "@codemation/core"; import { ApplicationTokens } from "../../applicationTokens"; import type { WorkflowRunRepository } from "../../domain/runs/WorkflowRunRepository"; import { HandlesQuery } from "../../infrastructure/di/HandlesQueryRegistry"; import { QueryHandler } from "../bus/QueryHandler"; import { GetRunStateQuery } from "./GetRunStateQuery"; @HandlesQuery.for(GetRunStateQuery) export class GetRunStateQueryHandler extends QueryHandler { constructor( @inject(ApplicationTokens.WorkflowRunRepository) private readonly workflowRunRepository: WorkflowRunRepository, ) { super(); } async execute(query: GetRunStateQuery): Promise { return await this.workflowRunRepository.load(query.runId); } }