import { IResponse } from '@kontent-ai/core-sdk'; import { WorkflowContracts } from '../contracts/workflow-contracts'; import { WorkflowModels } from '../models'; import { WorkflowResponses } from '../responses'; import { BaseMapper } from './base-mapper'; export class WorkflowMapper extends BaseMapper { mapListWorkflowsResponse( response: IResponse ): WorkflowResponses.ListWorkflowsResponse { const workflows = response.data.map((m) => this.mapWorkflow(m)); return new WorkflowResponses.ListWorkflowsResponse(super.mapResponseDebug(response), response.data, workflows); } mapAddWorkflowResponse( response: IResponse ): WorkflowResponses.AddWorkflowResponse { return new WorkflowResponses.AddWorkflowResponse( super.mapResponseDebug(response), response.data, this.mapWorkflow(response.data) ); } mapUpdateWorkflowResponse( response: IResponse ): WorkflowResponses.UpdateWorkflowResponse { return new WorkflowResponses.UpdateWorkflowResponse( super.mapResponseDebug(response), response.data, this.mapWorkflow(response.data) ); } mapWorkflowStep(rawStep: WorkflowContracts.IWorkflowStepContract): WorkflowModels.WorkflowStep { return new WorkflowModels.WorkflowStep({ id: rawStep.id, name: rawStep.name, codename: rawStep.codename, transitionsTo: rawStep.transitions_to, _raw: rawStep }); } mapWorkflow(raw: WorkflowContracts.IWorkflowContract): WorkflowModels.Workflow { return new WorkflowModels.Workflow({ id: raw.id, name: raw.name, codename: raw.codename, archivedStep: raw.archived_step, publishedStep: raw.published_step, scheduledStep: raw.scheduled_step, scopes: raw.scopes, steps: raw.steps, _raw: raw }); } } export const workflowMapper = new WorkflowMapper();