mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-02 07:01:30 -08:00
51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
|
import { ExecutionStatus, IDataObject } from 'n8n-workflow';
|
||
|
import { ExecutionFilterType, ExecutionsQueryFilter } from '@/Interface';
|
||
|
import { isEmpty } from '@/utils/typesUtils';
|
||
|
|
||
|
export const executionFilterToQueryFilter = (
|
||
|
filter: ExecutionFilterType,
|
||
|
): ExecutionsQueryFilter => {
|
||
|
const queryFilter: IDataObject = {};
|
||
|
if (filter.status === 'waiting') {
|
||
|
queryFilter.waitTill = true;
|
||
|
} else if (filter.status !== 'all') {
|
||
|
queryFilter.finished = filter.status === 'success';
|
||
|
}
|
||
|
|
||
|
if (filter.workflowId !== 'all') {
|
||
|
queryFilter.workflowId = filter.workflowId;
|
||
|
}
|
||
|
|
||
|
if (!isEmpty(filter.tags)) {
|
||
|
queryFilter.tags = filter.tags;
|
||
|
}
|
||
|
|
||
|
if (!isEmpty(filter.metadata)) {
|
||
|
queryFilter.metadata = filter.metadata;
|
||
|
}
|
||
|
|
||
|
if (!!filter.startDate) {
|
||
|
queryFilter.startedAfter = filter.startDate;
|
||
|
}
|
||
|
|
||
|
if (!!filter.endDate) {
|
||
|
queryFilter.startedBefore = filter.endDate;
|
||
|
}
|
||
|
|
||
|
switch (filter.status as ExecutionStatus) {
|
||
|
case 'waiting':
|
||
|
queryFilter.status = ['waiting'];
|
||
|
break;
|
||
|
case 'error':
|
||
|
queryFilter.status = ['failed', 'crashed'];
|
||
|
break;
|
||
|
case 'success':
|
||
|
queryFilter.status = ['success'];
|
||
|
break;
|
||
|
case 'running':
|
||
|
queryFilter.status = ['running'];
|
||
|
break;
|
||
|
}
|
||
|
return queryFilter;
|
||
|
};
|