diff --git a/lib/api/ktcmis/ktRepositoryService.inc.php b/lib/api/ktcmis/ktRepositoryService.inc.php index c4ea186..c98fe54 100644 --- a/lib/api/ktcmis/ktRepositoryService.inc.php +++ b/lib/api/ktcmis/ktRepositoryService.inc.php @@ -68,16 +68,10 @@ class KTRepositoryService extends KTCMISBase { * * @return repositoryList[] */ + // TODO error handling public function getRepositories() { $repositories = $this->RepositoryService->getRepositories(); - if (PEAR::isError($repositories)) - { - return array( - "status_code" => 1, - "message" => "Failed getting repositories" - ); - } // extract the required info fields into array format for easy encoding; $count = 0; @@ -86,14 +80,10 @@ class KTRepositoryService extends KTCMISBase { { $repositoryList[$count]['repositoryId'] = $repository->getRepositoryId(); $repositoryList[$count]['repositoryName'] = $repository->getRepositoryName(); - //$repositoryList[$count]['repositoryURI'] = $repository->getRepositoryURI(); ++$count; } - return array( - "status_code" => 0, - "results" => $repositoryList - ); + return $repositoryList; } /** @@ -101,23 +91,15 @@ class KTRepositoryService extends KTCMISBase { * * @param string $repositoryId */ + // TODO error handling public function getRepositoryInfo($repositoryId) { $repositoryInfo = $this->RepositoryService->getRepositoryInfo($repositoryId); - if (PEAR::isError($repositoryInfo)) - { - return array( - "status_code" => 1, - "message" => "Failed getting repository information" - ); - } // TODO output this manually, the function works but only for some objects so rather avoid it completely? // NOTE the problems appear to be due to recursive objects - return array ( - "status_code" => 0, - "results" => CMISUtil::objectToArray($repositoryInfo) - ); + $repositoryInfo = CMISUtil::objectToArray($repositoryInfo); + return $repositoryInfo; } /** @@ -132,28 +114,16 @@ class KTRepositoryService extends KTCMISBase { $repositoryObjectTypeResult = $this->RepositoryService->getTypes($repositoryId, $typeId, $returnPropertyDefinitions, $maxItems, $skipCount, $hasMoreItems); } - catch (Exception $e) - { - return array( - "status_code" => 1, - "message" => $e->getMessage() - ); + catch (Exception $e) { + throw $e; } // format as array style output - // NOTE only concerned with attributes at this time - // TODO add support for properties - foreach($repositoryObjectTypeResult as $key => $objectType) - { + foreach($repositoryObjectTypeResult as $key => $objectType) { $repositoryObjectTypes[$key] = $objectType['attributes']; - // TODO properties - // $repositoryObjectTypes[$key]['properties'] = $objectType['properties']; } - return array ( - "status_code" => 0, - "results" => $repositoryObjectTypes - ); + return $repositoryObjectTypes; } /** @@ -168,7 +138,6 @@ class KTRepositoryService extends KTCMISBase { $typeDefinition = $this->RepositoryService->getTypeDefinition($repositoryId, $typeId); } catch (Exception $e) { - // propogate upward throw $e; } diff --git a/lib/api/ktcmis/services/CMISRepositoryService.inc.php b/lib/api/ktcmis/services/CMISRepositoryService.inc.php index 8bc2d58..e1a9a55 100644 --- a/lib/api/ktcmis/services/CMISRepositoryService.inc.php +++ b/lib/api/ktcmis/services/CMISRepositoryService.inc.php @@ -66,8 +66,7 @@ class CMISRepositoryService { // TODO what if file does not exist? $xml = simplexml_load_file(CMIS_DIR . '/config/repositories.xml'); - foreach($xml->repository as $repositoryXML) - { + foreach($xml->repository as $repositoryXML) { $repositoryId = (string)$repositoryXML->repositoryInfo[0]->repositoryId; $Repository = new CMISRepository($repositoryId, $repositoryXML); $repositories[] = $Repository; diff --git a/webservice/atompub/cmis/KT_cmis_atom_server.services.inc.php b/webservice/atompub/cmis/KT_cmis_atom_server.services.inc.php index ef8bbf4..0010888 100644 --- a/webservice/atompub/cmis/KT_cmis_atom_server.services.inc.php +++ b/webservice/atompub/cmis/KT_cmis_atom_server.services.inc.php @@ -116,8 +116,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { $response = $ObjectService->getProperties($repositoryId, $folderId, false, false); } catch (Exception $e) { - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); - $this->responseFeed = $feed; + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); return null; } @@ -134,8 +133,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { $response = $NavigationService->getFolderParent($repositoryId, $folderId, false, false, false); } catch (Exception $e) { - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); - $this->responseFeed = $feed; + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); return null; } @@ -298,9 +296,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { $response = $ObjectService->deleteTree($repositoryId, $this->params[0], 'delete', true); } catch (Exception $e) { - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); - // Expose the responseFeed - $this->responseFeed = $feed; + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); return null; } @@ -350,8 +346,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { $entries = $NavigationService->getChildren($repositoryId, $folderId, false, false); } catch (Exception $e) { - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); - $this->responseFeed = $feed; + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); return null; } } @@ -370,8 +365,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { $entries = $NavigationService->getDescendants($repositoryId, $folderId, $depth); } catch (Exception $e) { - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); - $this->responseFeed = $feed; + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); return null; } } @@ -618,8 +612,7 @@ class KT_cmis_atom_service_checkedout extends KT_cmis_atom_service { $checkedout = $NavigationService->getCheckedOutDocs($repositoryId); } catch (Exception $e) { - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); - $this->responseFeed = $feed; + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); return null; } @@ -712,10 +705,13 @@ class KT_cmis_atom_service_types extends KT_cmis_atom_service { $RepositoryService = new KTRepositoryService(); $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); - $types = $RepositoryService->getTypes($repositoryId); - - // hack for removing one level of access - $types = $types['results']; + try { + $types = $RepositoryService->getTypes($repositoryId); + } + catch (Exception $e) { + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); + return null; + } $type = ((empty($this->params[0])) ? 'all' : $this->params[0]); $feed = KT_cmis_atom_service_helper::getTypeFeed($type, $types); @@ -741,9 +737,7 @@ class KT_cmis_atom_service_type extends KT_cmis_atom_service { $typeDefinition = $RepositoryService->getTypeDefinition($repositoryId, $type); } catch (Exception $e) { - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, self::STATUS_SERVER_ERROR, $e->getMessage()); - // Expose the responseFeed - $this->responseFeed = $feed; + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); return null; } diff --git a/webservice/atompub/cmis/KT_cmis_atom_service_helper.inc.php b/webservice/atompub/cmis/KT_cmis_atom_service_helper.inc.php index f72d310..e46381f 100644 --- a/webservice/atompub/cmis/KT_cmis_atom_service_helper.inc.php +++ b/webservice/atompub/cmis/KT_cmis_atom_service_helper.inc.php @@ -21,9 +21,6 @@ class KT_cmis_atom_service_helper { $repositories = $RepositoryService->getRepositories(); - // hack for removing one level of access - $repositories = $repositories['results']; - // TODO handle multiple repositories self::$repositoryId = $repositories[0]['repositoryId']; } diff --git a/webservice/classes/atompub/cmis/KT_cmis_atom_server.inc.php b/webservice/classes/atompub/cmis/KT_cmis_atom_server.inc.php index 7423ac3..0e82a4b 100644 --- a/webservice/classes/atompub/cmis/KT_cmis_atom_server.inc.php +++ b/webservice/classes/atompub/cmis/KT_cmis_atom_server.inc.php @@ -49,14 +49,9 @@ class KT_cmis_atom_server extends KT_atom_server { // fetch data for response $repositories = $RepositoryService->getRepositories(); - - // hack for removing one level of access - $repositories = $repositories['results']; // fetch for default first repo; NOTE that this will probably have to change at some point, quick and dirty for now - // hack for removing one level of access - $repositoryInfo = $RepositoryService->getRepositoryInfo($repositories[0]['repositoryId']); - $this->repositoryInfo = $repositoryInfo['results']; + $this->repositoryInfo = $RepositoryService->getRepositoryInfo($repositories[0]['repositoryId']); } } diff --git a/webservice/classes/atompub/cmis/KT_cmis_atom_serviceDoc.inc.php b/webservice/classes/atompub/cmis/KT_cmis_atom_serviceDoc.inc.php index e220389..a74449b 100644 --- a/webservice/classes/atompub/cmis/KT_cmis_atom_serviceDoc.inc.php +++ b/webservice/classes/atompub/cmis/KT_cmis_atom_serviceDoc.inc.php @@ -63,13 +63,8 @@ class KT_cmis_atom_serviceDoc extends KT_atom_serviceDoc { // fetch data for response $repositories = $RepositoryService->getRepositories(); - // hack for removing one level of access - $repositories = $repositories['results']; - // fetch for default first repo; NOTE that this will probably have to change at some point, quick and dirty for now - // hack for removing one level of access - $repositoryInfo = $RepositoryService->getRepositoryInfo($repositories[0]['repositoryId']); - $this->repositoryInfo = $repositoryInfo['results']; + $this->repositoryInfo = $RepositoryService->getRepositoryInfo($repositories[0]['repositoryId']); } protected function constructServiceDocumentHeaders()