28 lines
854 B
JavaScript
28 lines
854 B
JavaScript
import { ref } from 'objection';
|
|
import ExecutionStep from '../../../../models/execution-step.js';
|
|
import { renderObject } from '../../../../helpers/renderer.js';
|
|
|
|
export default async (request, response) => {
|
|
const step = await request.currentUser.authorizedSteps
|
|
.clone()
|
|
.findOne({ 'steps.id': request.params.stepId })
|
|
.throwIfNotFound();
|
|
|
|
const previousSteps = await request.currentUser.authorizedSteps
|
|
.clone()
|
|
.withGraphJoined('executionSteps')
|
|
.where('flow_id', '=', step.flowId)
|
|
.andWhere('position', '<', step.position)
|
|
.andWhere(
|
|
'executionSteps.created_at',
|
|
'=',
|
|
ExecutionStep.query()
|
|
.max('created_at')
|
|
.where('step_id', '=', ref('steps.id'))
|
|
.andWhere('status', 'success')
|
|
)
|
|
.orderBy('steps.position', 'asc');
|
|
|
|
renderObject(response, previousSteps);
|
|
};
|