Commit 251943ff8194351d2074a758ed02117302abd1f4

Authored by Paul Barrett
1 parent fc19ce53

Remove unnecessary webservice level classes

Committed by: Paul Barrett
lib/api/ktcmis/services/CMISVersioningService.inc.php
@@ -201,8 +201,9 @@ class CMISVersioningService { @@ -201,8 +201,9 @@ class CMISVersioningService {
201 public function checkIn($repositoryId, $objectId, $major = true, $properties = array(), $contentStream = null, 201 public function checkIn($repositoryId, $objectId, $major = true, $properties = array(), $contentStream = null,
202 $checkinComment = '', $policies = array(), $addACEs = array(), $removeACEs = array()) 202 $checkinComment = '', $policies = array(), $addACEs = array(), $removeACEs = array())
203 { 203 {
  204 +
204 $objectId = CMISUtil::decodeObjectId($objectId, $typeId); 205 $objectId = CMISUtil::decodeObjectId($objectId, $typeId);
205 - 206 +
206 // throw updateConflictException if the operation is attempting to update an object that is no longer current (as determined by the repository). 207 // throw updateConflictException if the operation is attempting to update an object that is no longer current (as determined by the repository).
207 try { 208 try {
208 $pwc = new CMISDocumentObject($objectId, $this->ktapi); 209 $pwc = new CMISDocumentObject($objectId, $this->ktapi);
@@ -210,7 +211,7 @@ class CMISVersioningService { @@ -210,7 +211,7 @@ class CMISVersioningService {
210 catch (exception $e) { 211 catch (exception $e) {
211 throw new UpdateConflictException($e->getMessage()); 212 throw new UpdateConflictException($e->getMessage());
212 } 213 }
213 - 214 +
214 // throw exception if the object is not versionable 215 // throw exception if the object is not versionable
215 if (!$pwc->getAttribute('versionable')) { 216 if (!$pwc->getAttribute('versionable')) {
216 throw new ConstraintViolationException('This document is not versionable and may not be checked in'); 217 throw new ConstraintViolationException('This document is not versionable and may not be checked in');
@@ -224,7 +225,7 @@ class CMISVersioningService { @@ -224,7 +225,7 @@ class CMISVersioningService {
224 // if we can't get the type definition, then we can't store the content 225 // if we can't get the type definition, then we can't store the content
225 throw new StorageException($e->getMessage()); 226 throw new StorageException($e->getMessage());
226 } 227 }
227 - 228 +
228 // if content stream is required (capabilityPWCUpdatability == false) and no content stream is supplied, 229 // if content stream is required (capabilityPWCUpdatability == false) and no content stream is supplied,
229 // throw a ConstraintViolationException 230 // throw a ConstraintViolationException
230 if (($typeDefinition['attributes']['contentStreamAllowed'] == 'required') && is_null($contentStream)) { 231 if (($typeDefinition['attributes']['contentStreamAllowed'] == 'required') && is_null($contentStream)) {
@@ -244,7 +245,7 @@ class CMISVersioningService { @@ -244,7 +245,7 @@ class CMISVersioningService {
244 $tempfilename = CMISUtil::createTemporaryFile($contentStream); 245 $tempfilename = CMISUtil::createTemporaryFile($contentStream);
245 $reason = 'CMIS object checkin'; 246 $reason = 'CMIS object checkin';
246 $response = $this->ktapi->checkin_document($objectId, $pwc->getProperty('contentStreamFilename'), $reason, $tempfilename, $major, 247 $response = $this->ktapi->checkin_document($objectId, $pwc->getProperty('contentStreamFilename'), $reason, $tempfilename, $major,
247 - $sig_username, $sig_password); 248 + $sig_username, $sig_password);
248 249
249 // if there was any error checking in 250 // if there was any error checking in
250 if ($response['status_code'] == 1) { 251 if ($response['status_code'] == 1) {
webservice/atompub/cmis/KT_cmis_atom_server.services.inc.php
@@ -31,15 +31,12 @@ When POSTing an Atom Document, the atom fields take precedence over the CMIS pro @@ -31,15 +31,12 @@ When POSTing an Atom Document, the atom fields take precedence over the CMIS pro
31 */ 31 */
32 32
33 // load all available CMIS services 33 // load all available CMIS services
34 -include_once CMIS_ATOM_LIB_FOLDER . 'RepositoryService.inc.php';  
35 -include_once CMIS_ATOM_LIB_FOLDER . 'NavigationService.inc.php';  
36 -include_once CMIS_ATOM_LIB_FOLDER . 'ObjectService.inc.php'; 34 +include_once CMIS_API . '/ktRepositoryService.inc.php';
  35 +include_once CMIS_API . '/ktNavigationService.inc.php';
  36 +include_once CMIS_API . '/ktObjectService.inc.php';
37 include_once CMIS_API . '/ktVersioningService.inc.php'; 37 include_once CMIS_API . '/ktVersioningService.inc.php';
38 include_once 'KT_cmis_atom_service_helper.inc.php'; 38 include_once 'KT_cmis_atom_service_helper.inc.php';
39 39
40 -// TODO consider changing all responses from the webservice layer to return PEAR errors or success results instead of the half/half we have at the moment.  
41 -// the half/half occurred because on initial services PEAR Error seemed unnecessary, but it has proven useful for some of the newer functions  
42 -  
43 // TODO proper first/last links 40 // TODO proper first/last links
44 // FIXME any incorrect or missing links 41 // FIXME any incorrect or missing links
45 // FIXME ContentStreamAllowed tag is empty (at least sometimes) 42 // FIXME ContentStreamAllowed tag is empty (at least sometimes)
@@ -75,14 +72,17 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -75,14 +72,17 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
75 else if (($this->params[1] == 'children') || ($this->params[1] == 'descendants')) 72 else if (($this->params[1] == 'children') || ($this->params[1] == 'descendants'))
76 { 73 {
77 $folderId = $this->params[0]; 74 $folderId = $this->params[0];
78 - $ObjectService = new ObjectService(KT_cmis_atom_service_helper::getKt()); 75 + $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt());
79 $response = $ObjectService->getProperties($repositoryId, $folderId, false, false); 76 $response = $ObjectService->getProperties($repositoryId, $folderId, false, false);
80 77
81 - if (PEAR::isError($response)) {  
82 - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response->getMessage()); 78 + if ($response['status_code'] == 1) {
  79 + $feed = KT_cmis_atom_service_helper::getErrorFeed($this, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response['message']);
83 $this->responseFeed = $feed; 80 $this->responseFeed = $feed;
84 return null; 81 return null;
85 } 82 }
  83 + else {
  84 + $response = $response['results'];
  85 + }
86 86
87 $folderName = $response['properties']['Name']['value']; 87 $folderName = $response['properties']['Name']['value'];
88 } 88 }
@@ -94,14 +94,17 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -94,14 +94,17 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
94 // abstract this to be used also by the document service (and the PWC service?) ??? 94 // abstract this to be used also by the document service (and the PWC service?) ???
95 // alternatively use getFolderParent here makes sense and use getObjectParents when document service? 95 // alternatively use getFolderParent here makes sense and use getObjectParents when document service?
96 $folderId = $this->params[0]; 96 $folderId = $this->params[0];
97 - $NavigationService = new NavigationService(KT_cmis_atom_service_helper::getKt()); 97 + $NavigationService = new KTNavigationService(KT_cmis_atom_service_helper::getKt());
98 $response = $NavigationService->getFolderParent($repositoryId, $folderId, false, false, false); 98 $response = $NavigationService->getFolderParent($repositoryId, $folderId, false, false, false);
99 99
100 - if (PEAR::isError($response)) {  
101 - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response->getMessage()); 100 + if ($response['status_code'] == 1) {
  101 + $feed = KT_cmis_atom_service_helper::getErrorFeed($this, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response['message']);
102 $this->responseFeed = $feed; 102 $this->responseFeed = $feed;
103 return null; 103 return null;
104 } 104 }
  105 + else {
  106 + $response = $response['results'];
  107 + }
105 108
106 // we know that a folder will only have one parent, so we can assume element 0 109 // we know that a folder will only have one parent, so we can assume element 0
107 $folderId = $response[0]['properties']['objectId']['value']; 110 $folderId = $response[0]['properties']['objectId']['value'];
@@ -113,12 +116,12 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -113,12 +116,12 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
113 116
114 if (!empty($this->params[1]) && (($this->params[1] == 'children') || ($this->params[1] == 'descendants'))) 117 if (!empty($this->params[1]) && (($this->params[1] == 'children') || ($this->params[1] == 'descendants')))
115 { 118 {
116 - $NavigationService = new NavigationService(KT_cmis_atom_service_helper::getKt()); 119 + $NavigationService = new KTNavigationService(KT_cmis_atom_service_helper::getKt());
117 $feed = $this->getFolderChildrenFeed($NavigationService, $repositoryId, $folderId, $folderName, $this->params[1]); 120 $feed = $this->getFolderChildrenFeed($NavigationService, $repositoryId, $folderId, $folderName, $this->params[1]);
118 } 121 }
119 else 122 else
120 { 123 {
121 - $ObjectService = new ObjectService(KT_cmis_atom_service_helper::getKt()); 124 + $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt());
122 $feed = KT_cmis_atom_service_helper::getObjectFeed($this, $ObjectService, $repositoryId, $folderId); 125 $feed = KT_cmis_atom_service_helper::getObjectFeed($this, $ObjectService, $repositoryId, $folderId);
123 } 126 }
124 127
@@ -175,7 +178,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -175,7 +178,7 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
175 178
176 // determine type if object is being moved 179 // determine type if object is being moved
177 if (!is_null($objectId)) { 180 if (!is_null($objectId)) {
178 - CMISUtil::decodeObjectId($objectId, $cmisObjectProperties['cmis:objectTypeId']); 181 + CMISUtil::decodeObjectId($objectId, $typeId);
179 } 182 }
180 183
181 // check for content stream 184 // check for content stream
@@ -187,22 +190,26 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -187,22 +190,26 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
187 ? $content['cmisra:text'] 190 ? $content['cmisra:text']
188 : null)); 191 : null));
189 192
190 - $ObjectService = new ObjectService(KT_cmis_atom_service_helper::getKt()); 193 + $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt());
191 194
192 $success = false; 195 $success = false;
193 $error = null; 196 $error = null;
194 if ($action == 'create') 197 if ($action == 'create')
195 { 198 {
196 // TODO detection and passing of optional parameters (policies, ACEs, etc...) as well as support for other object-types 199 // TODO detection and passing of optional parameters (policies, ACEs, etc...) as well as support for other object-types
197 - if ($cmisObjectProperties['cmis:objectTypeId'] == 'folder')  
198 - $newObjectId = $ObjectService->createFolder($repositoryId, ucwords($cmisObjectProperties['cmis:objectTypeId']), $properties, $folderId);  
199 - else 200 + if ($cmisObjectProperties['cmis:objectTypeId'] == 'folder') {
  201 + $newObjectId = $ObjectService->createFolder($repositoryId, ucwords($cmisObjectProperties['cmis:objectTypeId']),
  202 + $properties, $folderId);
  203 + }
  204 + else {
200 // NOTE for the moment only creation in minor versioning state 205 // NOTE for the moment only creation in minor versioning state
201 $newObjectId = $ObjectService->createDocument($repositoryId, $properties, $folderId, $cmisContent, 'minor'); 206 $newObjectId = $ObjectService->createDocument($repositoryId, $properties, $folderId, $cmisContent, 'minor');
  207 + }
202 208
203 - if (!PEAR::isError($newObjectId)) { 209 + if ($newObjectId['status_code'] == 0) {
  210 + $newObjectId = $newObjectId['results'];
204 // check if returned Object Id is a valid CMIS Object Id 211 // check if returned Object Id is a valid CMIS Object Id
205 - CMISUtil::decodeObjectId($newObjectId, $cmisObjectProperties['cmis:objectTypeId']); 212 + CMISUtil::decodeObjectId($newObjectId, $typeId);
206 if ($typeId != 'Unknown') { 213 if ($typeId != 'Unknown') {
207 $success = true; 214 $success = true;
208 } 215 }
@@ -211,18 +218,18 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -211,18 +218,18 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
211 } 218 }
212 } 219 }
213 else { 220 else {
214 - $error = $newObjectId->getMessage(); 221 + $error = $newObjectId['message'];
215 } 222 }
216 } 223 }
217 else if ($action == 'move') 224 else if ($action == 'move')
218 { 225 {
219 $response = $ObjectService->moveObject($repositoryId, $objectId, '', $folderId); 226 $response = $ObjectService->moveObject($repositoryId, $objectId, '', $folderId);
220 227
221 - if (!PEAR::isError($response)) { 228 + if ($response['status_code'] == 0) {
222 $success = true; 229 $success = true;
223 } 230 }
224 else { 231 else {
225 - $error = $response->getMessage(); 232 + $error = $response['message'];
226 } 233 }
227 234
228 // same object as before 235 // same object as before
@@ -258,19 +265,21 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -258,19 +265,21 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
258 265
259 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); 266 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
260 267
261 - $ObjectService = new ObjectService(KT_cmis_atom_service_helper::getKt()); 268 + $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt());
262 269
263 // attempt delete 270 // attempt delete
264 $response = $ObjectService->deleteTree($repositoryId, $this->params[0]); 271 $response = $ObjectService->deleteTree($repositoryId, $this->params[0]);
265 272
266 // error? 273 // error?
267 - if (PEAR::isError($response))  
268 - {  
269 - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, self::STATUS_SERVER_ERROR, $response->getMessage()); 274 + if ($response['status_code'] == 1) {
  275 + $feed = KT_cmis_atom_service_helper::getErrorFeed($this, self::STATUS_SERVER_ERROR, $response['message']);
270 // Expose the responseFeed 276 // Expose the responseFeed
271 $this->responseFeed = $feed; 277 $this->responseFeed = $feed;
272 return null; 278 return null;
273 } 279 }
  280 + else {
  281 + $response = $response['results'];
  282 + }
274 283
275 // list of failed objects? 284 // list of failed objects?
276 if (is_array($response)) 285 if (is_array($response))
@@ -322,6 +331,9 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -322,6 +331,9 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
322 else { 331 else {
323 // error, we shouldn't be here, if we are then the wrong service/function was called 332 // error, we shouldn't be here, if we are then the wrong service/function was called
324 } 333 }
  334 +
  335 + // hack, for removing one level of access
  336 + $entries = $entries['results'];
325 337
326 // $baseURI=NULL,$title=NULL,$link=NULL,$updated=NULL,$author=NULL,$id=NULL 338 // $baseURI=NULL,$title=NULL,$link=NULL,$updated=NULL,$author=NULL,$id=NULL
327 $feed = new KT_cmis_atom_responseFeed_GET(CMIS_APP_BASE_URI); 339 $feed = new KT_cmis_atom_responseFeed_GET(CMIS_APP_BASE_URI);
@@ -350,12 +362,8 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service { @@ -350,12 +362,8 @@ class KT_cmis_atom_service_folder extends KT_cmis_atom_service {
350 $link->appendChild($feed->newAttr('href', CMIS_APP_BASE_URI . $workspace . '/folder/' . $folderId)); 362 $link->appendChild($feed->newAttr('href', CMIS_APP_BASE_URI . $workspace . '/folder/' . $folderId));
351 $feed->appendChild($link); 363 $feed->appendChild($link);
352 364
353 - foreach($entries as $cmisEntry)  
354 - { 365 + foreach($entries as $cmisEntry) {
355 KT_cmis_atom_service_helper::createObjectEntry($feed, $cmisEntry, $folderName); 366 KT_cmis_atom_service_helper::createObjectEntry($feed, $cmisEntry, $folderName);
356 -  
357 - // after each entry, add app:edited tag  
358 - $feed->newField('app:edited', KT_cmis_atom_service_helper::formatDatestamp(), $feed);  
359 } 367 }
360 368
361 $feed->newField('cmis:hasMoreItems', 'false', $feed); 369 $feed->newField('cmis:hasMoreItems', 'false', $feed);
@@ -379,7 +387,7 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service { @@ -379,7 +387,7 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service {
379 { 387 {
380 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); 388 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
381 389
382 - $ObjectService = new ObjectService(KT_cmis_atom_service_helper::getKt()); 390 + $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt());
383 391
384 $objectId = $this->params[0]; 392 $objectId = $this->params[0];
385 393
@@ -392,11 +400,14 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service { @@ -392,11 +400,14 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service {
392 $NavigationService = new NavigationService(KT_cmis_atom_service_helper::getKt()); 400 $NavigationService = new NavigationService(KT_cmis_atom_service_helper::getKt());
393 $response = $NavigationService->getObjectParents($repositoryId, $objectId, false, false); 401 $response = $NavigationService->getObjectParents($repositoryId, $objectId, false, false);
394 402
395 - if (PEAR::isError($response)) {  
396 - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response->getMessage()); 403 + if ($response['status_code'] == 1) {
  404 + $feed = KT_cmis_atom_service_helper::getErrorFeed($this, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response['message']);
397 $this->responseFeed = $feed; 405 $this->responseFeed = $feed;
398 return null; 406 return null;
399 } 407 }
  408 + else {
  409 + $response = $response['results'];
  410 + }
400 411
401 // for now a document will only have one parent as KnowledgeTree does not support multi-filing 412 // for now a document will only have one parent as KnowledgeTree does not support multi-filing
402 // TODO update this code if/when multi-filing support is added 413 // TODO update this code if/when multi-filing support is added
@@ -435,10 +446,8 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service { @@ -435,10 +446,8 @@ class KT_cmis_atom_service_document extends KT_cmis_atom_service {
435 // attempt delete 446 // attempt delete
436 $response = $VersioningService->deleteAllVersions($repositoryId, $this->params[0]); 447 $response = $VersioningService->deleteAllVersions($repositoryId, $this->params[0]);
437 448
438 - // error?  
439 - if (PEAR::isError($response))  
440 - {  
441 - $feed = KT_cmis_atom_service_helper::getErrorFeed($this, self::STATUS_SERVER_ERROR, $response->getMessage()); 449 + if ($response['status_code'] == 1) {
  450 + $feed = KT_cmis_atom_service_helper::getErrorFeed($this, self::STATUS_SERVER_ERROR, $response['message']);
442 // Expose the responseFeed 451 // Expose the responseFeed
443 $this->responseFeed = $feed; 452 $this->responseFeed = $feed;
444 return null; 453 return null;
@@ -462,7 +471,7 @@ class KT_cmis_atom_service_pwc extends KT_cmis_atom_service { @@ -462,7 +471,7 @@ class KT_cmis_atom_service_pwc extends KT_cmis_atom_service {
462 { 471 {
463 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); 472 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
464 473
465 - $ObjectService = new ObjectService(KT_cmis_atom_service_helper::getKt()); 474 + $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt());
466 475
467 // determine whether we want the Private Working Copy entry feed or the actual physical Private Working Copy content. 476 // determine whether we want the Private Working Copy entry feed or the actual physical Private Working Copy content.
468 // this depends on $this->params[1] 477 // this depends on $this->params[1]
@@ -489,10 +498,9 @@ class KT_cmis_atom_service_pwc extends KT_cmis_atom_service { @@ -489,10 +498,9 @@ class KT_cmis_atom_service_pwc extends KT_cmis_atom_service {
489 { 498 {
490 // call the cancel checkout function 499 // call the cancel checkout function
491 500
492 - $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);  
493 - 501 + $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
494 $VersioningService = new KTVersioningService(KT_cmis_atom_service_helper::getKt()); 502 $VersioningService = new KTVersioningService(KT_cmis_atom_service_helper::getKt());
495 - 503 +
496 $response = $VersioningService->cancelCheckout($repositoryId, $this->params[0]); 504 $response = $VersioningService->cancelCheckout($repositoryId, $this->params[0]);
497 505
498 if ($response['status_code'] == 1) { 506 if ($response['status_code'] == 1) {
@@ -510,7 +518,7 @@ class KT_cmis_atom_service_pwc extends KT_cmis_atom_service { @@ -510,7 +518,7 @@ class KT_cmis_atom_service_pwc extends KT_cmis_atom_service {
510 { 518 {
511 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); 519 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
512 $VersioningService = new KTVersioningService(KT_cmis_atom_service_helper::getKt()); 520 $VersioningService = new KTVersioningService(KT_cmis_atom_service_helper::getKt());
513 - $ObjectService = new ObjectService(KT_cmis_atom_service_helper::getKt()); 521 + $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt());
514 522
515 // get object properties 523 // get object properties
516 $cmisObjectProperties = KT_cmis_atom_service_helper::getCmisProperties($this->rawContent); 524 $cmisObjectProperties = KT_cmis_atom_service_helper::getCmisProperties($this->rawContent);
@@ -568,10 +576,12 @@ class KT_cmis_atom_service_checkedout extends KT_cmis_atom_service { @@ -568,10 +576,12 @@ class KT_cmis_atom_service_checkedout extends KT_cmis_atom_service {
568 public function GET_action() 576 public function GET_action()
569 { 577 {
570 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); 578 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
571 -  
572 - $NavigationService = new NavigationService(KT_cmis_atom_service_helper::getKt()); 579 + $NavigationService = new KTNavigationService(KT_cmis_atom_service_helper::getKt());
573 580
574 $checkedout = $NavigationService->getCheckedOutDocs($repositoryId); 581 $checkedout = $NavigationService->getCheckedOutDocs($repositoryId);
  582 +
  583 + // hack, for removing one level of access
  584 + $checkedout = $checkedout['results'];
575 585
576 //Create a new response feed 586 //Create a new response feed
577 $feed = new KT_cmis_atom_responseFeed_GET(CMIS_APP_BASE_URI); 587 $feed = new KT_cmis_atom_responseFeed_GET(CMIS_APP_BASE_URI);
@@ -607,12 +617,8 @@ class KT_cmis_atom_service_checkedout extends KT_cmis_atom_service { @@ -607,12 +617,8 @@ class KT_cmis_atom_service_checkedout extends KT_cmis_atom_service {
607 $link->appendChild($feed->newAttr('type', 'application/atom+xml;type=feed')); 617 $link->appendChild($feed->newAttr('type', 'application/atom+xml;type=feed'));
608 $feed->appendChild($link); 618 $feed->appendChild($link);
609 619
610 - foreach($checkedout as $cmisEntry)  
611 - { 620 + foreach($checkedout as $cmisEntry) {
612 KT_cmis_atom_service_helper::createObjectEntry($feed, $cmisEntry, $folderName, true); 621 KT_cmis_atom_service_helper::createObjectEntry($feed, $cmisEntry, $folderName, true);
613 -  
614 -// // after each entry, add app:edited tag  
615 -// $feed->newField('app:edited', KT_cmis_atom_service_helper::formatDatestamp(), $feed);  
616 } 622 }
617 623
618 $feed->newField('cmis:hasMoreItems', 'false', $feed); 624 $feed->newField('cmis:hasMoreItems', 'false', $feed);
@@ -624,9 +630,8 @@ class KT_cmis_atom_service_checkedout extends KT_cmis_atom_service { @@ -624,9 +630,8 @@ class KT_cmis_atom_service_checkedout extends KT_cmis_atom_service {
624 public function POST_action() 630 public function POST_action()
625 { 631 {
626 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); 632 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
627 -  
628 $VersioningService = new KTVersioningService(KT_cmis_atom_service_helper::getKt()); 633 $VersioningService = new KTVersioningService(KT_cmis_atom_service_helper::getKt());
629 - $ObjectService = new ObjectService(KT_cmis_atom_service_helper::getKt()); 634 + $ObjectService = new KTObjectService(KT_cmis_atom_service_helper::getKt());
630 635
631 $cmisObjectProperties = KT_cmis_atom_service_helper::getCmisProperties($this->rawContent); 636 $cmisObjectProperties = KT_cmis_atom_service_helper::getCmisProperties($this->rawContent);
632 637
@@ -664,10 +669,14 @@ class KT_cmis_atom_service_types extends KT_cmis_atom_service { @@ -664,10 +669,14 @@ class KT_cmis_atom_service_types extends KT_cmis_atom_service {
664 669
665 public function GET_action() 670 public function GET_action()
666 { 671 {
667 - $RepositoryService = new RepositoryService(); 672 + $RepositoryService = new KTRepositoryService();
668 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); 673 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
669 674
670 $types = $RepositoryService->getTypes($repositoryId); 675 $types = $RepositoryService->getTypes($repositoryId);
  676 +
  677 + // hack for removing one level of access
  678 + $types = $types['results'];
  679 +
671 $type = ((empty($this->params[0])) ? 'all' : $this->params[0]); 680 $type = ((empty($this->params[0])) ? 'all' : $this->params[0]);
672 $feed = KT_cmis_atom_service_helper::getTypeFeed($type, $types); 681 $feed = KT_cmis_atom_service_helper::getTypeFeed($type, $types);
673 682
@@ -684,7 +693,7 @@ class KT_cmis_atom_service_type extends KT_cmis_atom_service { @@ -684,7 +693,7 @@ class KT_cmis_atom_service_type extends KT_cmis_atom_service {
684 693
685 public function GET_action() 694 public function GET_action()
686 { 695 {
687 - $RepositoryService = new RepositoryService(); 696 + $RepositoryService = new KTRepositoryService();
688 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService); 697 $repositoryId = KT_cmis_atom_service_helper::getRepositoryId($RepositoryService);
689 698
690 if (!isset($this->params[1])) { 699 if (!isset($this->params[1])) {
@@ -696,6 +705,10 @@ class KT_cmis_atom_service_type extends KT_cmis_atom_service { @@ -696,6 +705,10 @@ class KT_cmis_atom_service_type extends KT_cmis_atom_service {
696 // call directly from here rather than via getTypeFeed. 705 // call directly from here rather than via getTypeFeed.
697 $type = ucwords($this->params[0]); 706 $type = ucwords($this->params[0]);
698 $types = $RepositoryService->getTypes($repositoryId, $type); 707 $types = $RepositoryService->getTypes($repositoryId, $type);
  708 +
  709 + // hack for removing one level of access
  710 + $types = $types['results'];
  711 +
699 $feed = KT_cmis_atom_service_helper::getTypeFeed($type, $types); 712 $feed = KT_cmis_atom_service_helper::getTypeFeed($type, $types);
700 } 713 }
701 else { 714 else {
@@ -720,7 +733,6 @@ class KT_cmis_atom_service_type extends KT_cmis_atom_service { @@ -720,7 +733,6 @@ class KT_cmis_atom_service_type extends KT_cmis_atom_service {
720 private function getTypeChildrenFeed() 733 private function getTypeChildrenFeed()
721 { 734 {
722 //Create a new response feed 735 //Create a new response feed
723 - // $baseURI=NULL,$title=NULL,$link=NULL,$updated=NULL,$author=NULL,$id=NULL  
724 $feed = new KT_cmis_atom_responseFeed_GET(CMIS_APP_BASE_URI); 736 $feed = new KT_cmis_atom_responseFeed_GET(CMIS_APP_BASE_URI);
725 737
726 $feed->newField('title', 'Child Types of ' . ucwords($this->params[0]), $feed); 738 $feed->newField('title', 'Child Types of ' . ucwords($this->params[0]), $feed);
webservice/atompub/cmis/KT_cmis_atom_service_helper.inc.php
@@ -16,11 +16,14 @@ class KT_cmis_atom_service_helper { @@ -16,11 +16,14 @@ class KT_cmis_atom_service_helper {
16 static public function setRepositoryId(&$RepositoryService = null) 16 static public function setRepositoryId(&$RepositoryService = null)
17 { 17 {
18 if (is_null($RepositoryService)) { 18 if (is_null($RepositoryService)) {
19 - $RepositoryService = new RepositoryService(); 19 + $RepositoryService = new KTRepositoryService();
20 } 20 }
21 21
22 $repositories = $RepositoryService->getRepositories(); 22 $repositories = $RepositoryService->getRepositories();
23 23
  24 + // hack for removing one level of access
  25 + $repositories = $repositories['results'];
  26 +
24 // TODO handle multiple repositories 27 // TODO handle multiple repositories
25 self::$repositoryId = $repositories[0]['repositoryId']; 28 self::$repositoryId = $repositories[0]['repositoryId'];
26 } 29 }
@@ -60,11 +63,11 @@ class KT_cmis_atom_service_helper { @@ -60,11 +63,11 @@ class KT_cmis_atom_service_helper {
60 $serviceType = $service->getServiceType(); 63 $serviceType = $service->getServiceType();
61 $response = $ObjectService->getProperties($repositoryId, $objectId, false, false); 64 $response = $ObjectService->getProperties($repositoryId, $objectId, false, false);
62 65
63 - if (PEAR::isError($response)) {  
64 - return KT_cmis_atom_service_helper::getErrorFeed($service, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response->getMessage()); 66 + if ($response['status_code'] == 1) {
  67 + return KT_cmis_atom_service_helper::getErrorFeed($service, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response['message']);
65 } 68 }
66 -  
67 - $cmisEntry = $response; 69 +
  70 + $cmisEntry = $response['results'];
68 $response = null; 71 $response = null;
69 72
70 // POST/PWC responses only send back an entry, not a feed 73 // POST/PWC responses only send back an entry, not a feed
@@ -84,11 +87,6 @@ class KT_cmis_atom_service_helper { @@ -84,11 +87,6 @@ class KT_cmis_atom_service_helper {
84 87
85 if ($serviceType == 'PWC') $pwc = true; else $pwc = false; 88 if ($serviceType == 'PWC') $pwc = true; else $pwc = false;
86 KT_cmis_atom_service_helper::createObjectEntry($response, $cmisEntry, $cmisEntry['properties']['parentId']['value'], $pwc, $method); 89 KT_cmis_atom_service_helper::createObjectEntry($response, $cmisEntry, $cmisEntry['properties']['parentId']['value'], $pwc, $method);
87 -  
88 - // Don't think this should be here...only one item so why would we need to say there are no more?  
89 - /*if ($method == 'GET') {  
90 - $response->newField('cmis:hasMoreItems', 'false', $response);  
91 - }*/  
92 90
93 return $response; 91 return $response;
94 } 92 }
@@ -639,12 +637,15 @@ class KT_cmis_atom_service_helper { @@ -639,12 +637,15 @@ class KT_cmis_atom_service_helper {
639 static public function getContentStream(&$service, &$ObjectService, $repositoryId) 637 static public function getContentStream(&$service, &$ObjectService, $repositoryId)
640 { 638 {
641 $response = $ObjectService->getProperties($repositoryId, $service->params[0], false, false); 639 $response = $ObjectService->getProperties($repositoryId, $service->params[0], false, false);
642 - if (PEAR::isError($response)) { 640 + if ($response['status_code'] == 1) {
643 return null; 641 return null;
644 } 642 }
645 643
646 $contentStream = $ObjectService->getContentStream($repositoryId, $service->params[0]); 644 $contentStream = $ObjectService->getContentStream($repositoryId, $service->params[0]);
647 645
  646 + // hack for removing one level of access
  647 + $contentStream = $contentStream['results'];
  648 +
648 return $contentStream; 649 return $contentStream;
649 } 650 }
650 /** 651 /**
@@ -657,11 +658,14 @@ class KT_cmis_atom_service_helper { @@ -657,11 +658,14 @@ class KT_cmis_atom_service_helper {
657 static public function downloadContentStream(&$service, &$ObjectService, $repositoryId) 658 static public function downloadContentStream(&$service, &$ObjectService, $repositoryId)
658 { 659 {
659 $response = $ObjectService->getProperties($repositoryId, $service->params[0], false, false); 660 $response = $ObjectService->getProperties($repositoryId, $service->params[0], false, false);
660 - if (PEAR::isError($response)) {  
661 - $feed = KT_cmis_atom_service_helper::getErrorFeed($service, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response->getMessage()); 661 + if ($response['status_code'] == 1) {
  662 + $feed = KT_cmis_atom_service_helper::getErrorFeed($service, KT_cmis_atom_service::STATUS_SERVER_ERROR, $response['message']);
662 $service->responseFeed = $feed; 663 $service->responseFeed = $feed;
663 return null; 664 return null;
664 } 665 }
  666 + else {
  667 + $response = $response['results'];
  668 + }
665 669
666 // TODO also check If-Modified-Since? 670 // TODO also check If-Modified-Since?
667 // $service->headers['If-Modified-Since'] => 2009-07-24 17:16:54 671 // $service->headers['If-Modified-Since'] => 2009-07-24 17:16:54
@@ -678,6 +682,9 @@ class KT_cmis_atom_service_helper { @@ -678,6 +682,9 @@ class KT_cmis_atom_service_helper {
678 682
679 $contentStream = $ObjectService->getContentStream($repositoryId, $service->params[0]); 683 $contentStream = $ObjectService->getContentStream($repositoryId, $service->params[0]);
680 684
  685 + // hack for removing one level of access
  686 + $contentStream = $contentStream['results'];
  687 +
681 // headers specific to output 688 // headers specific to output
682 $service->setEtag($eTag); 689 $service->setEtag($eTag);
683 $service->setHeader('Last-Modified', $response['properties']['lastModificationDate']['value']); 690 $service->setHeader('Last-Modified', $response['properties']['lastModificationDate']['value']);
webservice/classes/atompub/KT_atom_serviceDoc.inc.php
@@ -43,7 +43,6 @@ @@ -43,7 +43,6 @@
43 */ 43 */
44 include_once('KT_atom_baseDoc.inc.php'); 44 include_once('KT_atom_baseDoc.inc.php');
45 45
46 -  
47 class KT_atom_serviceDoc extends KT_atom_baseDoc { 46 class KT_atom_serviceDoc extends KT_atom_baseDoc {
48 47
49 protected $baseURI=NULL; 48 protected $baseURI=NULL;
@@ -97,11 +96,6 @@ class KT_atom_serviceDoc extends KT_atom_baseDoc { @@ -97,11 +96,6 @@ class KT_atom_serviceDoc extends KT_atom_baseDoc {
97 96
98 97
99 98
100 -  
101 -  
102 -  
103 -  
104 -  
105 /** 99 /**
106 <?xml version="1.0" encoding="utf-8"?> 100 <?xml version="1.0" encoding="utf-8"?>
107 <service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom"> 101 <service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
webservice/classes/atompub/cmis/KT_cmis_atom_server.inc.php
1 <?php 1 <?php
2 2
3 include_once(KT_ATOM_LIB_FOLDER . 'KT_atom_server.inc.php'); 3 include_once(KT_ATOM_LIB_FOLDER . 'KT_atom_server.inc.php');
4 -require_once('RepositoryService.inc.php'); 4 +require_once(CMIS_API . '/ktRepositoryService.inc.php');
5 5
6 class KT_cmis_atom_server extends KT_atom_server { 6 class KT_cmis_atom_server extends KT_atom_server {
7 7
@@ -45,12 +45,18 @@ class KT_cmis_atom_server extends KT_atom_server { @@ -45,12 +45,18 @@ class KT_cmis_atom_server extends KT_atom_server {
45 $workspace = strtolower(trim($queryArray[0])); 45 $workspace = strtolower(trim($queryArray[0]));
46 if ($workspace == 'servicedocument') 46 if ($workspace == 'servicedocument')
47 { 47 {
48 - $RepositoryService = new RepositoryService(); 48 + $RepositoryService = new KTRepositoryService();
49 49
50 // fetch data for response 50 // fetch data for response
51 $repositories = $RepositoryService->getRepositories(); 51 $repositories = $RepositoryService->getRepositories();
  52 +
  53 + // hack for removing one level of access
  54 + $repositories = $repositories['results'];
  55 +
52 // fetch for default first repo; NOTE that this will probably have to change at some point, quick and dirty for now 56 // fetch for default first repo; NOTE that this will probably have to change at some point, quick and dirty for now
53 - $this->repositoryInfo = $RepositoryService->getRepositoryInfo($repositories[0]['repositoryId']); 57 + // hack for removing one level of access
  58 + $repositoryInfo = $RepositoryService->getRepositoryInfo($repositories[0]['repositoryId']);
  59 + $this->repositoryInfo = $repositoryInfo['results'];
54 } 60 }
55 } 61 }
56 62
webservice/classes/atompub/cmis/KT_cmis_atom_serviceDoc.inc.php
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 * Includes 43 * Includes
44 */ 44 */
45 include_once(KT_ATOM_LIB_FOLDER.'KT_atom_serviceDoc.inc.php'); 45 include_once(KT_ATOM_LIB_FOLDER.'KT_atom_serviceDoc.inc.php');
46 -require_once('RepositoryService.inc.php'); 46 +require_once(CMIS_API . '/ktRepositoryService.inc.php');
47 47
48 class KT_cmis_atom_serviceDoc extends KT_atom_serviceDoc { 48 class KT_cmis_atom_serviceDoc extends KT_atom_serviceDoc {
49 49
@@ -58,12 +58,18 @@ class KT_cmis_atom_serviceDoc extends KT_atom_serviceDoc { @@ -58,12 +58,18 @@ class KT_cmis_atom_serviceDoc extends KT_atom_serviceDoc {
58 // get repositoryInfo 58 // get repositoryInfo
59 // NOTE currently we only support one repository, which will be the first one found in the repositories.xml config 59 // NOTE currently we only support one repository, which will be the first one found in the repositories.xml config
60 // TODO multiple repositories as individual workspaces 60 // TODO multiple repositories as individual workspaces
61 - $RepositoryService = new RepositoryService(); 61 + $RepositoryService = new KTRepositoryService();
62 62
63 // fetch data for response 63 // fetch data for response
64 $repositories = $RepositoryService->getRepositories(); 64 $repositories = $RepositoryService->getRepositories();
  65 +
  66 + // hack for removing one level of access
  67 + $repositories = $repositories['results'];
  68 +
65 // fetch for default first repo; NOTE that this will probably have to change at some point, quick and dirty for now 69 // fetch for default first repo; NOTE that this will probably have to change at some point, quick and dirty for now
66 - $this->repositoryInfo = $RepositoryService->getRepositoryInfo($repositories[0]['repositoryId']); 70 + // hack for removing one level of access
  71 + $repositoryInfo = $RepositoryService->getRepositoryInfo($repositories[0]['repositoryId']);
  72 + $this->repositoryInfo = $repositoryInfo['results'];
67 } 73 }
68 74
69 protected function constructServiceDocumentHeaders() 75 protected function constructServiceDocumentHeaders()