Commit 52a9d9ac448803cf193a8fae9020af93037f1718
1 parent
5db5412c
CMIS Object Services bubbling up exceptions and applying status code mapping
Story ID:2713417. CMIS working with PHP client Committed by: Paul Barrett
Showing
3 changed files
with
84 additions
and
148 deletions
lib/api/ktcmis/ktObjectService.inc.php
| @@ -93,10 +93,7 @@ class KTObjectService extends KTCMISBase { | @@ -93,10 +93,7 @@ class KTObjectService extends KTCMISBase { | ||
| 93 | throw $e; | 93 | throw $e; |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | - return array( | ||
| 97 | - "status_code" => 0, | ||
| 98 | - "results" => $properties | ||
| 99 | - ); | 96 | + return $properties; |
| 100 | } | 97 | } |
| 101 | 98 | ||
| 102 | /** | 99 | /** |
| @@ -122,18 +119,11 @@ class KTObjectService extends KTCMISBase { | @@ -122,18 +119,11 @@ class KTObjectService extends KTCMISBase { | ||
| 122 | $objectId = $this->ObjectService->createDocument($repositoryId, $properties, $folderId, $contentStream, | 119 | $objectId = $this->ObjectService->createDocument($repositoryId, $properties, $folderId, $contentStream, |
| 123 | $versioningState,$policies, $addACEs, $removeACEs); | 120 | $versioningState,$policies, $addACEs, $removeACEs); |
| 124 | } | 121 | } |
| 125 | - catch (Exception $e) | ||
| 126 | - { | ||
| 127 | - return array( | ||
| 128 | - "status_code" => 1, | ||
| 129 | - "message" => $e->getMessage() | ||
| 130 | - ); | 122 | + catch (Exception $e) { |
| 123 | + throw $e; | ||
| 131 | } | 124 | } |
| 132 | 125 | ||
| 133 | - return array( | ||
| 134 | - 'status_code' => 0, | ||
| 135 | - 'results' => $objectId | ||
| 136 | - ); | 126 | + return $objectId; |
| 137 | } | 127 | } |
| 138 | 128 | ||
| 139 | /** | 129 | /** |
| @@ -154,18 +144,11 @@ class KTObjectService extends KTCMISBase { | @@ -154,18 +144,11 @@ class KTObjectService extends KTCMISBase { | ||
| 154 | try { | 144 | try { |
| 155 | $objectId = $this->ObjectService->createFolder($repositoryId, $properties, $folderId, $policies, $addACEs, $removeACEs); | 145 | $objectId = $this->ObjectService->createFolder($repositoryId, $properties, $folderId, $policies, $addACEs, $removeACEs); |
| 156 | } | 146 | } |
| 157 | - catch (Exception $e) | ||
| 158 | - { | ||
| 159 | - return array( | ||
| 160 | - "status_code" => 1, | ||
| 161 | - "message" => $e->getMessage() | ||
| 162 | - ); | 147 | + catch (Exception $e) { |
| 148 | + throw $e; | ||
| 163 | } | 149 | } |
| 164 | 150 | ||
| 165 | - return array( | ||
| 166 | - 'status_code' => 0, | ||
| 167 | - 'results' => $objectId | ||
| 168 | - ); | 151 | + return $objectId; |
| 169 | } | 152 | } |
| 170 | 153 | ||
| 171 | /** | 154 | /** |
| @@ -181,18 +164,11 @@ class KTObjectService extends KTCMISBase { | @@ -181,18 +164,11 @@ class KTObjectService extends KTCMISBase { | ||
| 181 | try { | 164 | try { |
| 182 | $contentStream = $this->ObjectService->getContentStream($repositoryId, $objectId, $streamId); | 165 | $contentStream = $this->ObjectService->getContentStream($repositoryId, $objectId, $streamId); |
| 183 | } | 166 | } |
| 184 | - catch (Exception $e) | ||
| 185 | - { | ||
| 186 | - return array( | ||
| 187 | - "status_code" => 1, | ||
| 188 | - "message" => $e->getMessage() | ||
| 189 | - ); | 167 | + catch (Exception $e) { |
| 168 | + throw $e; | ||
| 190 | } | 169 | } |
| 191 | 170 | ||
| 192 | - return array( | ||
| 193 | - 'status_code' => 0, | ||
| 194 | - 'results' => $contentStream | ||
| 195 | - ); | 171 | + return $contentStream; |
| 196 | } | 172 | } |
| 197 | 173 | ||
| 198 | /** | 174 | /** |
| @@ -209,18 +185,11 @@ class KTObjectService extends KTCMISBase { | @@ -209,18 +185,11 @@ class KTObjectService extends KTCMISBase { | ||
| 209 | try { | 185 | try { |
| 210 | $this->ObjectService->moveObject($repositoryId, $objectId, $targetFolderId, $sourceFolderId); | 186 | $this->ObjectService->moveObject($repositoryId, $objectId, $targetFolderId, $sourceFolderId); |
| 211 | } | 187 | } |
| 212 | - catch (Exception $e) | ||
| 213 | - { | ||
| 214 | - return array( | ||
| 215 | - "status_code" => 1, | ||
| 216 | - "message" => $e->getMessage() | ||
| 217 | - ); | 188 | + catch (Exception $e) { |
| 189 | + throw $e; | ||
| 218 | } | 190 | } |
| 219 | 191 | ||
| 220 | - return array( | ||
| 221 | - 'status_code' => 0, | ||
| 222 | - 'results' => $objectId | ||
| 223 | - ); | 192 | + return $objectId; |
| 224 | } | 193 | } |
| 225 | 194 | ||
| 226 | /** | 195 | /** |
| @@ -236,46 +205,30 @@ class KTObjectService extends KTCMISBase { | @@ -236,46 +205,30 @@ class KTObjectService extends KTCMISBase { | ||
| 236 | try { | 205 | try { |
| 237 | $this->ObjectService->deleteObject($repositoryId, $objectId, $allVersions); | 206 | $this->ObjectService->deleteObject($repositoryId, $objectId, $allVersions); |
| 238 | } | 207 | } |
| 239 | - catch (Exception $e) | ||
| 240 | - { | ||
| 241 | - return array( | ||
| 242 | - "status_code" => 1, | ||
| 243 | - "message" => $e->getMessage() | ||
| 244 | - ); | 208 | + catch (Exception $e) { |
| 209 | + throw $e; | ||
| 245 | } | 210 | } |
| 246 | 211 | ||
| 247 | - return array( | ||
| 248 | - 'status_code' => 0, | ||
| 249 | - 'results' => $objectId | ||
| 250 | - ); | 212 | + return $objectId; |
| 251 | } | 213 | } |
| 252 | 214 | ||
| 253 | public function deleteTree($repositoryId, $objectId, $changeToken = null, $unfileNonfolderObject = 'delete', $continueOnFailure = false) | 215 | public function deleteTree($repositoryId, $objectId, $changeToken = null, $unfileNonfolderObject = 'delete', $continueOnFailure = false) |
| 254 | { | 216 | { |
| 217 | + $failed = array(); | ||
| 218 | + | ||
| 255 | try { | 219 | try { |
| 256 | $result = $this->ObjectService->deleteTree($repositoryId, $objectId, $changeToken, $unfileNonfolderObject, $continueOnFailure); | 220 | $result = $this->ObjectService->deleteTree($repositoryId, $objectId, $changeToken, $unfileNonfolderObject, $continueOnFailure); |
| 257 | } | 221 | } |
| 258 | - catch (Exception $e) | ||
| 259 | - { | ||
| 260 | - return array( | ||
| 261 | - "status_code" => 1, | ||
| 262 | - "message" => $e->getMessage() | ||
| 263 | - ); | 222 | + catch (Exception $e) { |
| 223 | + throw $e; | ||
| 264 | } | 224 | } |
| 265 | 225 | ||
| 266 | // check whether there is a list of items which did not delete | 226 | // check whether there is a list of items which did not delete |
| 267 | - if (count($result) > 0) | ||
| 268 | - { | ||
| 269 | - return array( | ||
| 270 | - "status_code" => 1, | ||
| 271 | - "message" => $result | ||
| 272 | - ); | 227 | + if (count($result) > 0) { |
| 228 | + return $result; | ||
| 273 | } | 229 | } |
| 274 | 230 | ||
| 275 | - return array( | ||
| 276 | - 'status_code' => 0, | ||
| 277 | - 'results' => $objectId | ||
| 278 | - ); | 231 | + return $failed; |
| 279 | } | 232 | } |
| 280 | 233 | ||
| 281 | /** | 234 | /** |
| @@ -299,18 +252,11 @@ class KTObjectService extends KTCMISBase { | @@ -299,18 +252,11 @@ class KTObjectService extends KTCMISBase { | ||
| 299 | try { | 252 | try { |
| 300 | $documentId = $this->ObjectService->setContentStream($repositoryId, $documentId, $overwriteFlag, $contentStream, $changeToken); | 253 | $documentId = $this->ObjectService->setContentStream($repositoryId, $documentId, $overwriteFlag, $contentStream, $changeToken); |
| 301 | } | 254 | } |
| 302 | - catch (Exception $e) | ||
| 303 | - { | ||
| 304 | - return array( | ||
| 305 | - "status_code" => 1, | ||
| 306 | - "message" => $e->getMessage() | ||
| 307 | - ); | 255 | + catch (Exception $e) { |
| 256 | + throw $e; | ||
| 308 | } | 257 | } |
| 309 | 258 | ||
| 310 | - return array( | ||
| 311 | - 'status_code' => 0, | ||
| 312 | - 'results' => $documentId | ||
| 313 | - ); | 259 | + return $documentId; |
| 314 | } | 260 | } |
| 315 | 261 | ||
| 316 | } | 262 | } |
webservice/atompub/cmis/KT_cmis_atom_server.services.inc.php
| @@ -121,8 +121,6 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | @@ -121,8 +121,6 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | ||
| 121 | return null; | 121 | return null; |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | - $response = $response['results']; | ||
| 125 | - | ||
| 126 | $folderName = $response['properties']['name']['value']; | 124 | $folderName = $response['properties']['name']['value']; |
| 127 | } | 125 | } |
| 128 | // NOTE parent changes to parents in later specification | 126 | // NOTE parent changes to parents in later specification |
| @@ -140,7 +138,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | @@ -140,7 +138,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | ||
| 140 | $this->responseFeed = $feed; | 138 | $this->responseFeed = $feed; |
| 141 | return null; | 139 | return null; |
| 142 | } | 140 | } |
| 143 | - | 141 | + |
| 144 | // we know that a folder will only have one parent, so we can assume element 0 | 142 | // we know that a folder will only have one parent, so we can assume element 0 |
| 145 | $folderId = $response['properties']['objectId']['value']; | 143 | $folderId = $response['properties']['objectId']['value']; |
| 146 | $folderName = $response['properties']['name']['value']; | 144 | $folderName = $response['properties']['name']['value']; |
| @@ -151,7 +149,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | @@ -151,7 +149,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | ||
| 151 | 149 | ||
| 152 | if (!empty($this->params[1]) && (($this->params[1] == 'children') || ($this->params[1] == 'descendants'))) | 150 | if (!empty($this->params[1]) && (($this->params[1] == 'children') || ($this->params[1] == 'descendants'))) |
| 153 | { | 151 | { |
| 154 | - print_r($this->params);exit; | 152 | + print_r($this->params);exit; |
| 155 | $NavigationService = new KTNavigationService(KT_cmis_atom_service_helper::getKt()); | 153 | $NavigationService = new KTNavigationService(KT_cmis_atom_service_helper::getKt()); |
| 156 | $feed = $this->getFolderChildrenFeed($NavigationService, $repositoryId, $folderId, $folderName, $this->params[1]); | 154 | $feed = $this->getFolderChildrenFeed($NavigationService, $repositoryId, $folderId, $folderName, $this->params[1]); |
| 157 | } | 155 | } |
| @@ -232,56 +230,50 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | @@ -232,56 +230,50 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | ||
| 232 | { | 230 | { |
| 233 | // TODO detection and passing of optional parameters (policies, ACEs, etc...) as well as support for other object-types | 231 | // TODO detection and passing of optional parameters (policies, ACEs, etc...) as well as support for other object-types |
| 234 | if ($cmisObjectProperties['cmis:objectTypeId'] == 'cmis:folder') { | 232 | if ($cmisObjectProperties['cmis:objectTypeId'] == 'cmis:folder') { |
| 235 | - $newObjectId = $ObjectService->createFolder($repositoryId, $properties, $folderId); | 233 | + try { |
| 234 | + $newObjectId = $ObjectService->createFolder($repositoryId, $properties, $folderId); | ||
| 235 | + } | ||
| 236 | + catch (Exception $e) { | ||
| 237 | + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($service, $this->getStatusCode($e), $e->getMessage()); | ||
| 238 | + return null; | ||
| 239 | + } | ||
| 236 | } | 240 | } |
| 237 | else { | 241 | else { |
| 238 | // NOTE for the moment only creation in minor versioning state | 242 | // NOTE for the moment only creation in minor versioning state |
| 239 | - $newObjectId = $ObjectService->createDocument($repositoryId, $properties, $folderId, $cmisContent, 'minor'); | ||
| 240 | - } | ||
| 241 | - | ||
| 242 | - if ($newObjectId['status_code'] == 0) { | ||
| 243 | - $newObjectId = $newObjectId['results']; | ||
| 244 | - // check if returned Object Id is a valid CMIS Object Id | ||
| 245 | - CMISUtil::decodeObjectId($newObjectId, $typeId); | ||
| 246 | - if ($typeId != 'unknown') { | ||
| 247 | - $success = true; | 243 | + try { |
| 244 | + $newObjectId = $ObjectService->createDocument($repositoryId, $properties, $folderId, $cmisContent, 'minor'); | ||
| 248 | } | 245 | } |
| 249 | - else { | ||
| 250 | - $error = 'Unknown Object Type'; | 246 | + catch (Exception $e) { |
| 247 | + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($service, $this->getStatusCode($e), $e->getMessage()); | ||
| 248 | + return null; | ||
| 251 | } | 249 | } |
| 252 | } | 250 | } |
| 251 | + | ||
| 252 | + // check if returned Object Id is a valid CMIS Object Id | ||
| 253 | + CMISUtil::decodeObjectId($newObjectId, $typeId); | ||
| 254 | + if ($typeId != 'unknown') { | ||
| 255 | + $success = true; | ||
| 256 | + } | ||
| 253 | else { | 257 | else { |
| 254 | - $error = $newObjectId['message']; | 258 | + $error = 'Unknown Object Type'; |
| 255 | } | 259 | } |
| 256 | } | 260 | } |
| 257 | else if ($action == 'move') | 261 | else if ($action == 'move') |
| 258 | { | 262 | { |
| 259 | - $response = $ObjectService->moveObject($repositoryId, $objectId, $folderId, $sourceFolderId); | ||
| 260 | - | ||
| 261 | - if ($response['status_code'] == 0) { | ||
| 262 | - $success = true; | 263 | + try { |
| 264 | + $newObjectId = $ObjectService->moveObject($repositoryId, $objectId, $folderId, $sourceFolderId); | ||
| 263 | } | 265 | } |
| 264 | - else { | ||
| 265 | - $error = $response['message']; | 266 | + catch (Exception $e) { |
| 267 | + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($service, $this->getStatusCode($e), $e->getMessage()); | ||
| 268 | + return null; | ||
| 266 | } | 269 | } |
| 267 | 270 | ||
| 268 | - // same object as before | ||
| 269 | - $newObjectId = $objectId; | ||
| 270 | // FIXME why set this? it does not appear to get used | 271 | // FIXME why set this? it does not appear to get used |
| 271 | $typeId = ucwords($cmisObjectProperties['cmis:objectTypeId']); | 272 | $typeId = ucwords($cmisObjectProperties['cmis:objectTypeId']); |
| 272 | } | 273 | } |
| 273 | 274 | ||
| 274 | - if ($success) | ||
| 275 | - { | ||
| 276 | - $this->setStatus(($action == 'create') ? self::STATUS_CREATED : self::STATUS_UPDATED); | ||
| 277 | - $feed = KT_cmis_atom_service_helper::getObjectFeed($this, $ObjectService, $repositoryId, $newObjectId, 'POST'); | ||
| 278 | - } | ||
| 279 | - else { | ||
| 280 | - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, self::STATUS_SERVER_ERROR, $error); | ||
| 281 | - } | ||
| 282 | - | ||
| 283 | - // Expose the responseFeed | ||
| 284 | - $this->responseFeed = $feed; | 275 | + $this->setStatus(($action == 'create') ? self::STATUS_CREATED : self::STATUS_UPDATED); |
| 276 | + $this->responseFeed = KT_cmis_atom_service_helper::getObjectFeed($this, $ObjectService, $repositoryId, $newObjectId, 'POST'); | ||
| 285 | } | 277 | } |
| 286 | 278 | ||
| 287 | /** | 279 | /** |
| @@ -302,21 +294,18 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | @@ -302,21 +294,18 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | ||
| 302 | $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt()); | 294 | $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt()); |
| 303 | 295 | ||
| 304 | // attempt delete - last parameter sets $deleteAllVersions true | 296 | // attempt delete - last parameter sets $deleteAllVersions true |
| 305 | - $response = $ObjectService->deleteTree($repositoryId, $this->params[0], 'delete', true); | ||
| 306 | - | ||
| 307 | - // error? | ||
| 308 | - if ($response['status_code'] == 1) { | ||
| 309 | - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, self::STATUS_SERVER_ERROR, $response['message']); | 297 | + try { |
| 298 | + $response = $ObjectService->deleteTree($repositoryId, $this->params[0], 'delete', true); | ||
| 299 | + } | ||
| 300 | + catch (Exception $e) { | ||
| 301 | + $feed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); | ||
| 310 | // Expose the responseFeed | 302 | // Expose the responseFeed |
| 311 | $this->responseFeed = $feed; | 303 | $this->responseFeed = $feed; |
| 312 | return null; | 304 | return null; |
| 313 | } | 305 | } |
| 314 | - else { | ||
| 315 | - $response = $response['results']; | ||
| 316 | - } | ||
| 317 | 306 | ||
| 318 | - // list of failed objects? | ||
| 319 | - if (is_array($response)) | 307 | + // non-empty list of failed objects? |
| 308 | + if (count($response)) | ||
| 320 | { | 309 | { |
| 321 | $this->setStatus(self::STATUS_SERVER_ERROR); | 310 | $this->setStatus(self::STATUS_SERVER_ERROR); |
| 322 | 311 | ||
| @@ -376,7 +365,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | @@ -376,7 +365,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { | ||
| 376 | // with only the depth different | 365 | // with only the depth different |
| 377 | $depth = 2; | 366 | $depth = 2; |
| 378 | } | 367 | } |
| 379 | - | 368 | + |
| 380 | try { | 369 | try { |
| 381 | $entries = $NavigationService->getDescendants($repositoryId, $folderId, $depth); | 370 | $entries = $NavigationService->getDescendants($repositoryId, $folderId, $depth); |
| 382 | } | 371 | } |
| @@ -454,8 +443,7 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service { | @@ -454,8 +443,7 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service { | ||
| 454 | $response = $NavigationService->getObjectParents($repositoryId, $objectId, false, false); | 443 | $response = $NavigationService->getObjectParents($repositoryId, $objectId, false, false); |
| 455 | } | 444 | } |
| 456 | catch (Exception $e) { | 445 | catch (Exception $e) { |
| 457 | - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); | ||
| 458 | - $this->responseFeed = $feed; | 446 | + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); |
| 459 | return null; | 447 | return null; |
| 460 | } | 448 | } |
| 461 | 449 | ||
| @@ -492,12 +480,11 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service { | @@ -492,12 +480,11 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service { | ||
| 492 | $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt()); | 480 | $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt()); |
| 493 | 481 | ||
| 494 | // attempt delete | 482 | // attempt delete |
| 495 | - $response = $ObjectService->deleteObject($repositoryId, $this->params[0]); | ||
| 496 | - | ||
| 497 | - if ($response['status_code'] == 1) { | ||
| 498 | - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, self::STATUS_SERVER_ERROR, $response['message']); | ||
| 499 | - // Expose the responseFeed | ||
| 500 | - $this->responseFeed = $feed; | 483 | + try { |
| 484 | + $response = $ObjectService->deleteObject($repositoryId, $this->params[0]); | ||
| 485 | + } | ||
| 486 | + catch (Exception $e) { | ||
| 487 | + $this->responseFeed = KT_cmis_atom_service_helper::getErrorFeed($this, $this->getStatusCode($e), $e->getMessage()); | ||
| 501 | return null; | 488 | return null; |
| 502 | } | 489 | } |
| 503 | 490 |
webservice/atompub/cmis/KT_cmis_atom_service_helper.inc.php
| @@ -62,13 +62,14 @@ class KT_cmis_atom_service_helper { | @@ -62,13 +62,14 @@ class KT_cmis_atom_service_helper { | ||
| 62 | self::$repositoryId = $repositoryId; | 62 | self::$repositoryId = $repositoryId; |
| 63 | 63 | ||
| 64 | $serviceType = $service->getServiceType(); | 64 | $serviceType = $service->getServiceType(); |
| 65 | - $response = $ObjectService->getProperties($repositoryId, $objectId, false, false); | ||
| 66 | - | ||
| 67 | - if ($response['status_code'] == 1) { | ||
| 68 | - return KT_cmis_atom_service_helper::getErrorFeed($service, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response['message']); | 65 | + try { |
| 66 | + $response = $ObjectService->getProperties($repositoryId, $objectId, false, false); | ||
| 67 | + } | ||
| 68 | + catch (Exception $e) { | ||
| 69 | + return KT_cmis_atom_service_helper::getErrorFeed($service, $service->getStatusCode($e), $e->getMessage()); | ||
| 69 | } | 70 | } |
| 70 | 71 | ||
| 71 | - $cmisEntry = $response['results']; | 72 | + $cmisEntry = $response; |
| 72 | $response = null; | 73 | $response = null; |
| 73 | 74 | ||
| 74 | // POST/PWC responses only send back an entry, not a feed | 75 | // POST/PWC responses only send back an entry, not a feed |
| @@ -709,8 +710,11 @@ class KT_cmis_atom_service_helper { | @@ -709,8 +710,11 @@ class KT_cmis_atom_service_helper { | ||
| 709 | */ | 710 | */ |
| 710 | static public function getContentStream(&$service, &$ObjectService, $repositoryId) | 711 | static public function getContentStream(&$service, &$ObjectService, $repositoryId) |
| 711 | { | 712 | { |
| 712 | - $response = $ObjectService->getProperties($repositoryId, $service->params[0], false, false); | ||
| 713 | - if ($response['status_code'] == 1) { | 713 | + // why do we check the properties first? is it just to determine that the object in fact exists? |
| 714 | + try { | ||
| 715 | + $response = $ObjectService->getProperties($repositoryId, $service->params[0], false, false); | ||
| 716 | + } | ||
| 717 | + catch (Exception $e) { | ||
| 714 | return null; | 718 | return null; |
| 715 | } | 719 | } |
| 716 | 720 | ||
| @@ -730,15 +734,14 @@ class KT_cmis_atom_service_helper { | @@ -730,15 +734,14 @@ class KT_cmis_atom_service_helper { | ||
| 730 | */ | 734 | */ |
| 731 | static public function downloadContentStream(&$service, &$ObjectService, $repositoryId) | 735 | static public function downloadContentStream(&$service, &$ObjectService, $repositoryId) |
| 732 | { | 736 | { |
| 733 | - $response = $ObjectService->getProperties($repositoryId, $service->params[0], false, false); | ||
| 734 | - if ($response['status_code'] == 1) { | ||
| 735 | - $feed = KT_cmis_atom_service_helper::getErrorFeed($service, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response['message']); | 737 | + try { |
| 738 | + $response = $ObjectService->getProperties($repositoryId, $service->params[0], false, false); | ||
| 739 | + } | ||
| 740 | + catch (Exception $e) { | ||
| 741 | + $feed = KT_cmis_atom_service_helper::getErrorFeed($service, $service->getStatusCode($e), $e->getMessage()); | ||
| 736 | $service->responseFeed = $feed; | 742 | $service->responseFeed = $feed; |
| 737 | return null; | 743 | return null; |
| 738 | } | 744 | } |
| 739 | - else { | ||
| 740 | - $response = $response['results']; | ||
| 741 | - } | ||
| 742 | 745 | ||
| 743 | // TODO also check If-Modified-Since? | 746 | // TODO also check If-Modified-Since? |
| 744 | // $service->headers['If-Modified-Since'] => 2009-07-24 17:16:54 | 747 | // $service->headers['If-Modified-Since'] => 2009-07-24 17:16:54 |