logger = $logger; $this->service = $service; $this->userId = $userId; } #[NoAdminRequired] public function index(): DataResponse { return $this->handleError(function () { return $this->service->findAll($this->userId); }); } #[NoAdminRequired] #[RequirePermission(permission: Application::PERMISSION_READ, type: Application::NODE_TYPE_TABLE, idParam: 'id')] public function show(int $id): DataResponse { return $this->handleError(function () use ($id) { return $this->service->find($id); }); } #[NoAdminRequired] public function create(string $title, string $template, string $emoji): DataResponse { return $this->handleError(function () use ($title, $template, $emoji) { return $this->service->create($title, $template, $emoji); }); } #[NoAdminRequired] #[RequirePermission(permission: Application::PERMISSION_MANAGE, type: Application::NODE_TYPE_TABLE, idParam: 'id')] public function destroy(int $id): DataResponse { return $this->handleError(function () use ($id) { return $this->service->delete($id); }); } #[NoAdminRequired] #[RequirePermission(permission: Application::PERMISSION_MANAGE, type: Application::NODE_TYPE_TABLE, idParam: 'id')] public function update(int $id, ?string $title = null, ?string $emoji = null, ?bool $archived = null): DataResponse { return $this->handleError(function () use ($id, $title, $emoji, $archived) { return $this->service->update($id, $title, $emoji, null, $archived, $this->userId); }); } }