, list>, array{}> * * 200: List of workflows returned */ #[ApiRoute(verb: 'GET', url: '/api/v1/workflows/global')] public function index(): DataResponse { return parent::index(); } /** * Retrieve a specific workflow * * @param string $id Workflow ID to load * @return DataResponse, array{}> * * 200: Workflow returned or empty array if the ID is unknown in the scope */ #[ApiRoute(verb: 'GET', url: '/api/v1/workflows/global/{id}')] public function show(string $id): DataResponse { return parent::show($id); } /** * Create a workflow * * @param class-string $class Operation class to execute * @param string $name Name of the workflow rule * @param list $checks List of conditions that need to apply for the rule to match * @param string $operation Operation class to execute on match * @param string $entity The matched entity * @param list> $events The list of events on which the rule should be validated * @return DataResponse * * 200: Workflow created * * @throws OCSBadRequestException Thrown when a check or check value is invalid */ #[PasswordConfirmationRequired] #[ApiRoute(verb: 'POST', url: '/api/v1/workflows/global')] public function create(string $class, string $name, array $checks, string $operation, string $entity, array $events): DataResponse { return parent::create($class, $name, $checks, $operation, $entity, $events); } /** * Modify a workflow * * @param int $id Workflow ID to delete * @param string $name Name of the workflow rule * @param list $checks List of conditions that need to apply for the rule to match * @param string $operation Operation action to execute on match * @param string $entity The matched entity * @param list> $events The list of events on which the rule should be validated * @return DataResponse * * 200: Workflow updated * * @throws OCSBadRequestException Thrown when a check or check value is invalid * @throws OCSForbiddenException Thrown when workflow is from a different scope */ #[PasswordConfirmationRequired] #[ApiRoute(verb: 'PUT', url: '/api/v1/workflows/global/{id}')] public function update(int $id, string $name, array $checks, string $operation, string $entity, array $events): DataResponse { return parent::update($id, $name, $checks, $operation, $entity, $events); } /** * Delete a workflow * * @param int $id Workflow ID to delete * @return DataResponse|DataResponse, array{}> * * 200: Workflow deleted * * @throws OCSForbiddenException Thrown when workflow is from a different scope */ #[PasswordConfirmationRequired] #[ApiRoute(verb: 'DELETE', url: '/api/v1/workflows/global/{id}')] public function destroy(int $id): DataResponse { return parent::destroy($id); } protected function getScopeContext(): ScopeContext { if ($this->scopeContext === null) { $this->scopeContext = new ScopeContext(IManager::SCOPE_ADMIN); } return $this->scopeContext; } }