From cba949fb0771c832326fc7886cced2bdc37e7536 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Thu, 29 May 2014 22:58:30 +0200 Subject: order by pubdate --- controller/entityapiserializer.php | 11 +++-------- controller/feedapicontroller.php | 15 ++++++++------- controller/folderapicontroller.php | 11 ++++++++--- controller/foldercontroller.php | 38 +++++++++++++++++++------------------- controller/itemapicontroller.php | 29 +++++++++++++++++++---------- controller/itemcontroller.php | 3 ++- 6 files changed, 59 insertions(+), 48 deletions(-) (limited to 'controller') diff --git a/controller/entityapiserializer.php b/controller/entityapiserializer.php index c09e27dbd..eb60bc7c5 100644 --- a/controller/entityapiserializer.php +++ b/controller/entityapiserializer.php @@ -11,13 +11,12 @@ namespace OCA\News\Controller; -use \OCP\AppFramework\Http\IResponseSerializer; use \OCP\AppFramework\Http\Response; use \OCA\News\Db\IAPI; -class EntityApiSerializer implements IResponseSerializer { +class EntityApiSerializer { public function __construct($level) { @@ -35,10 +34,6 @@ class EntityApiSerializer implements IResponseSerializer { */ public function serialize($data) { - if($data === null || $data instanceof Response) { - return $data; - } - if($data instanceof IAPI) { return [$this->level => [$data->toAPI()]]; } @@ -58,14 +53,14 @@ class EntityApiSerializer implements IResponseSerializer { foreach($entities as $entity) { if($entity instanceof IAPI) { - $converted[] = $entity->toAPI(); + $converted[] = $entity->toAPI(); // break if it contains anything else than entities } else { return $entities; } } - + return $converted; } diff --git a/controller/feedapicontroller.php b/controller/feedapicontroller.php index c6b5b6866..4ba3b9be5 100644 --- a/controller/feedapicontroller.php +++ b/controller/feedapicontroller.php @@ -33,6 +33,7 @@ class FeedApiController extends ApiController { private $userId; private $logger; private $loggerParams; + private $serializer; public function __construct($appName, IRequest $request, @@ -47,7 +48,7 @@ class FeedApiController extends ApiController { $this->userId = $userId; $this->logger = $logger; $this->loggerParams = $loggerParams; - $this->registerSerializer(new EntityApiSerializer('feeds')); + $this->serializer = new EntityApiSerializer('feeds'); } @@ -64,14 +65,14 @@ class FeedApiController extends ApiController { 'feeds' => $this->feedService->findAll($this->userId) ]; - + try { $result['newestItemId'] = $this->itemService->getNewestItemId($this->userId); - + // in case there are no items, ignore } catch(ServiceNotFoundException $ex) {} - return $result; + return $this->serializer->serialize($result); } @@ -96,7 +97,7 @@ class FeedApiController extends ApiController { // in case there are no items, ignore } catch(ServiceNotFoundException $ex) {} - return $result; + return $this->serializer->serialize($result); } catch(ServiceConflictException $ex) { return $this->error($ex, Http::STATUS_CONFLICT); @@ -110,7 +111,7 @@ class FeedApiController extends ApiController { * @NoAdminRequired * @NoCSRFRequired * @CORS - * + * * @param int $feedId */ public function delete($feedId) { @@ -179,7 +180,7 @@ class FeedApiController extends ApiController { foreach ($feeds as $feed) { $result['feeds'][] = [ - 'id' => $feed->getId(), + 'id' => $feed->getId(), 'userId' => $feed->getUserId() ]; } diff --git a/controller/folderapicontroller.php b/controller/folderapicontroller.php index c5ed2b05a..666f4cfa2 100644 --- a/controller/folderapicontroller.php +++ b/controller/folderapicontroller.php @@ -31,6 +31,7 @@ class FolderApiController extends ApiController { private $folderService; private $itemService; private $userId; + private $serializer; public function __construct($appName, IRequest $request, @@ -41,7 +42,7 @@ class FolderApiController extends ApiController { $this->folderService = $folderService; $this->itemService = $itemService; $this->userId = $userId; - $this->registerSerializer(new EntityApiSerializer('folders')); + $this->serializer = new EntityApiSerializer('folders'); } @@ -51,7 +52,9 @@ class FolderApiController extends ApiController { * @CORS */ public function index() { - return $this->folderService->findAll($this->userId); + return $this->serializer->serialize( + $this->folderService->findAll($this->userId) + ); } @@ -65,7 +68,9 @@ class FolderApiController extends ApiController { public function create($name) { try { $this->folderService->purgeDeleted($this->userId, false); - return $this->folderService->create($name, $this->userId); + return $this->serializer->serialize( + $this->folderService->create($name, $this->userId) + ); } catch(ServiceValidationException $ex) { return $this->error($ex, Http::STATUS_UNPROCESSABLE_ENTITY); } catch(ServiceConflictException $ex) { diff --git a/controller/foldercontroller.php b/controller/foldercontroller.php index 4a19ab513..1137a2528 100644 --- a/controller/foldercontroller.php +++ b/controller/foldercontroller.php @@ -34,12 +34,12 @@ class FolderController extends Controller { private $itemService; private $userId; - public function __construct($appName, - IRequest $request, + public function __construct($appName, + IRequest $request, FolderService $folderService, FeedService $feedService, ItemService $itemService, - $userId){ + $userId) { parent::__construct($appName, $request); $this->folderService = $folderService; $this->feedService = $feedService; @@ -51,23 +51,23 @@ class FolderController extends Controller { /** * @NoAdminRequired */ - public function index(){ + public function index() { $folders = $this->folderService->findAll($this->userId); return ['folders' => $folders]; } - private function setOpened($isOpened, $folderId){ + private function setOpened($isOpened, $folderId) { $this->folderService->open($folderId, $isOpened, $this->userId); } /** * @NoAdminRequired - * + * * @param int $folderId */ - public function open($folderId){ + public function open($folderId) { try { $this->setOpened(true, $folderId); } catch(ServiceNotFoundException $ex) { @@ -81,7 +81,7 @@ class FolderController extends Controller { * * @param int $folderId */ - public function collapse($folderId){ + public function collapse($folderId) { try { $this->setOpened(false, $folderId); } catch(ServiceNotFoundException $ex) { @@ -95,9 +95,9 @@ class FolderController extends Controller { * * @param string $folderName */ - public function create($folderName){ + public function create($folderName) { try { - // we need to purge deleted folders if a folder is created to + // we need to purge deleted folders if a folder is created to // prevent already exists exceptions $this->folderService->purgeDeleted($this->userId, false); $folder = $this->folderService->create($folderName, $this->userId); @@ -109,16 +109,16 @@ class FolderController extends Controller { } catch(ServiceValidationException $ex) { return $this->error($ex, Http::STATUS_UNPROCESSABLE_ENTITY); } - + } /** * @NoAdminRequired - * + * * @param int $folderId */ - public function delete($folderId){ + public function delete($folderId) { try { $this->folderService->markDeleted($folderId, $this->userId); } catch (ServiceNotFoundException $ex){ @@ -133,9 +133,9 @@ class FolderController extends Controller { * @param string $folderName * @param int $folderId */ - public function rename($folderName, $folderId){ + public function rename($folderName, $folderId) { try { - $folder = $this->folderService->rename($folderId, $folderName, + $folder = $this->folderService->rename($folderId, $folderName, $this->userId); return ['folders' => [$folder]]; @@ -143,7 +143,7 @@ class FolderController extends Controller { } catch(ServiceConflictException $ex) { return $this->error($ex, Http::STATUS_CONFLICT); } catch(ServiceValidationException $ex) { - return $this->error($ex, Http::STATUS_UNPROCESSABLE_ENTITY); + return $this->error($ex, Http::STATUS_UNPROCESSABLE_ENTITY); } catch (ServiceNotFoundException $ex){ return $this->error($ex, Http::STATUS_NOT_FOUND); } @@ -155,7 +155,7 @@ class FolderController extends Controller { * @param int $folderId * @param int $highestItemId */ - public function read($folderId, $highestItemId){ + public function read($folderId, $highestItemId) { $this->itemService->readFolder($folderId, $highestItemId, $this->userId); return ['feeds' => $this->feedService->findAll($this->userId)]; @@ -164,10 +164,10 @@ class FolderController extends Controller { /** * @NoAdminRequired - * + * * @param int $folderId */ - public function restore($folderId){ + public function restore($folderId) { try { $this->folderService->unmarkDeleted($folderId, $this->userId); } catch (ServiceNotFoundException $ex){ diff --git a/controller/itemapicontroller.php b/controller/itemapicontroller.php index da4596d1e..40366a936 100644 --- a/controller/itemapicontroller.php +++ b/controller/itemapicontroller.php @@ -26,6 +26,7 @@ class ItemApiController extends ApiController { private $itemService; private $userId; + private $serializer; public function __construct($appName, IRequest $request, @@ -34,7 +35,7 @@ class ItemApiController extends ApiController { parent::__construct($appName, $request); $this->itemService = $itemService; $this->userId = $userId; - $this->registerSerializer(new EntityApiSerializer('items')); + $this->serializer = new EntityApiSerializer('items'); } @@ -42,16 +43,22 @@ class ItemApiController extends ApiController { * @NoAdminRequired * @NoCSRFRequired * @CORS - * + * * @param int $type * @param int $id * @param bool $getRead * @param int $batchSize * @param int $offset + * @param int $oldestFirst */ - public function index($type, $id, $getRead, $batchSize=20, $offset=0) { - return $this->itemService->findAll($id, $type, $batchSize, $offset, - $getRead, $this->userId); + public function index($type, $id, $getRead, $batchSize=20, $offset=0, + $oldestFirst=false) { + return $this->serializer->serialize( + $this->itemService->findAll( + $id, $type, $batchSize, $offset, $getRead, $oldestFirst, + $this->userId + ) + ); } @@ -59,14 +66,16 @@ class ItemApiController extends ApiController { * @NoAdminRequired * @NoCSRFRequired * @CORS - * + * * @param int $type * @param int $id * @param int $lastModified */ public function updated($type, $id, $lastModified=0) { - return $this->itemService->findAllNew($id, $type, $lastModified, - true, $this->userId); + return $this->serializer->serialize( + $this->itemService->findAllNew($id, $type, $lastModified, + true, $this->userId) + ); } @@ -188,7 +197,7 @@ class ItemApiController extends ApiController { private function setMultipleStarred($isStarred, $items) { foreach($items as $item) { try { - $this->itemService->star($item['feedId'], $item['guidHash'], + $this->itemService->star($item['feedId'], $item['guidHash'], $isStarred, $this->userId); } catch(ServiceNotFoundException $ex) { continue; @@ -213,7 +222,7 @@ class ItemApiController extends ApiController { * @NoAdminRequired * @NoCSRFRequired * @CORS - * + * * @param int[] item ids */ public function unstarMultiple($items) { diff --git a/controller/itemcontroller.php b/controller/itemcontroller.php index 486d0b922..4f3f22c62 100644 --- a/controller/itemcontroller.php +++ b/controller/itemcontroller.php @@ -80,7 +80,8 @@ class ItemController extends Controller { } $params['items'] = $this->itemService->findAll( - $id, $type, $limit, $offset, $showAll, $this->userId, $oldestFirst + $id, $type, $limit, $offset, $showAll, $oldestFirst, + $this->userId ); // this gets thrown if there are no items -- cgit v1.2.3