Files
Automata/packages/cli/src/executions/executions.service.ee.ts
Omar Ajoue 139e08a549 fix: Add only necessary information to executions (no-changelog) (#6916)
* fix: Add only necessary information to executions

* Fix lint

* fix: lint issue

---------

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2023-08-14 09:44:04 +02:00

45 lines
1.5 KiB
TypeScript

import type { User } from '@db/entities/User';
import { getSharedWorkflowIds } from '@/WorkflowHelpers';
import { ExecutionsService } from './executions.service';
import type { ExecutionRequest } from '@/requests';
import type { IExecutionResponse, IExecutionFlattedResponse } from '@/Interfaces';
import { EEWorkflowsService as EEWorkflows } from '../workflows/workflows.services.ee';
import type { WorkflowWithSharingsAndCredentials } from '@/workflows/workflows.types';
export class EEExecutionsService extends ExecutionsService {
/**
* Function to get the workflow Ids for a User regardless of role
*/
static async getWorkflowIdsForUser(user: User): Promise<string[]> {
// Get all workflows
return getSharedWorkflowIds(user);
}
static async getExecution(
req: ExecutionRequest.Get,
): Promise<IExecutionResponse | IExecutionFlattedResponse | undefined> {
const execution = await super.getExecution(req);
if (!execution) return;
const relations = ['shared', 'shared.user', 'shared.role'];
const workflow = (await EEWorkflows.get(
{ id: execution.workflowId },
{ relations },
)) as WorkflowWithSharingsAndCredentials;
if (!workflow) return;
EEWorkflows.addOwnerAndSharings(workflow);
await EEWorkflows.addCredentialsToWorkflow(workflow, req.user);
execution.workflowData = {
...execution.workflowData,
ownedBy: workflow.ownedBy,
sharedWith: workflow.sharedWith,
usedCredentials: workflow.usedCredentials,
} as WorkflowWithSharingsAndCredentials;
return execution;
}
}