request = $request; } #[NoCSRFRequired] #[PublicPage] #[AppAPIAuth] public function registerProvider( array $provider, ?array $customTaskType, ): DataResponse { if (!$this->isSupported()) { return new DataResponse([], Http::STATUS_NOT_IMPLEMENTED); } $providerObj = $this->taskProcessingService->registerTaskProcessingProvider( $this->request->getHeader('EX-APP-ID'), $provider, $customTaskType, ); if ($providerObj === null) { return new DataResponse([], Http::STATUS_BAD_REQUEST); } return new DataResponse(); } #[NoCSRFRequired] #[PublicPage] #[AppAPIAuth] public function unregisterProvider(string $name): Response { if (!$this->isSupported()) { return new DataResponse([], Http::STATUS_NOT_IMPLEMENTED); } $unregistered = $this->taskProcessingService->unregisterTaskProcessingProvider( $this->request->getHeader('EX-APP-ID'), $name ); if ($unregistered === null) { return new DataResponse([], Http::STATUS_NOT_FOUND); } return new DataResponse(); } #[NoCSRFRequired] #[PublicPage] #[AppAPIAuth] public function getProvider(string $name): DataResponse { if (!$this->isSupported()) { return new DataResponse([], Http::STATUS_NOT_IMPLEMENTED); } $result = $this->taskProcessingService->getExAppTaskProcessingProvider( $this->request->getHeader('EX-APP-ID'), $name ); if (!$result) { return new DataResponse([], Http::STATUS_NOT_FOUND); } return new DataResponse($result, Http::STATUS_OK); } private function isSupported() { $ncVersion = $this->config->getSystemValueString('version', '0.0.0'); return version_compare($ncVersion, '30.0', '>='); } }