summaryrefslogtreecommitdiffstats
path: root/controller/feedcontroller.php
diff options
context:
space:
mode:
Diffstat (limited to 'controller/feedcontroller.php')
-rw-r--r--controller/feedcontroller.php301
1 files changed, 0 insertions, 301 deletions
diff --git a/controller/feedcontroller.php b/controller/feedcontroller.php
deleted file mode 100644
index 2b95794a3..000000000
--- a/controller/feedcontroller.php
+++ /dev/null
@@ -1,301 +0,0 @@
-<?php
-/**
- * ownCloud - News
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Alessandro Cosentino <cosenal@gmail.com>
- * @author Bernhard Posselt <dev@bernhard-posselt.com>
- * @copyright Alessandro Cosentino 2012
- * @copyright Bernhard Posselt 2012, 2014
- */
-
-namespace OCA\News\Controller;
-
-use OCP\IRequest;
-use OCP\IConfig;
-use OCP\AppFramework\Controller;
-use OCP\AppFramework\Http;
-
-use OCA\News\Service\ItemService;
-use OCA\News\Service\FeedService;
-use OCA\News\Service\FolderService;
-use OCA\News\Service\ServiceNotFoundException;
-use OCA\News\Service\ServiceConflictException;
-use OCA\News\Db\FeedType;
-
-
-class FeedController extends Controller {
-
- use JSONHttpError;
-
- private $feedService;
- private $folderService;
- private $itemService;
- private $userId;
- private $settings;
-
- public function __construct($AppName,
- IRequest $request,
- FolderService $folderService,
- FeedService $feedService,
- ItemService $itemService,
- IConfig $settings,
- $UserId){
- parent::__construct($AppName, $request);
- $this->feedService = $feedService;
- $this->folderService = $folderService;
- $this->itemService = $itemService;
- $this->userId = $UserId;
- $this->settings = $settings;
- }
-
-
- /**
- * @NoAdminRequired
- */
- public function index(){
-
- // this method is also used to update the interface
- // because of this we also pass the starred count and the newest
- // item id which will be used for marking feeds read
- $params = [
- 'feeds' => $this->feedService->findAll($this->userId),
- 'starred' => $this->itemService->starredCount($this->userId)
- ];
-
- try {
- $params['newestItemId'] =
- $this->itemService->getNewestItemId($this->userId);
-
- // An exception occurs if there is a newest item. If there is none,
- // simply ignore it and do not add the newestItemId
- } catch (ServiceNotFoundException $ex) {}
-
- return $params;
- }
-
-
- /**
- * @NoAdminRequired
- */
- public function active(){
- $feedId = (int) $this->settings->getUserValue($this->userId,
- $this->appName,'lastViewedFeedId');
- $feedType = $this->settings->getUserValue($this->userId, $this->appName,
- 'lastViewedFeedType');
-
- // cast from null to int is 0
- if($feedType !== null){
- $feedType = (int) $feedType;
- }
-
- // check if feed or folder exists
- try {
- if($feedType === FeedType::FOLDER){
- $this->folderService->find($feedId, $this->userId);
-
- } elseif ($feedType === FeedType::FEED){
- $this->feedService->find($feedId, $this->userId);
-
- // if its the first launch, those values will be null
- } elseif($feedType === null){
- throw new ServiceNotFoundException('');
- }
-
- } catch (ServiceNotFoundException $ex){
- $feedId = 0;
- $feedType = FeedType::SUBSCRIPTIONS;
- }
-
- return [
- 'activeFeed' => [
- 'id' => $feedId,
- 'type' => $feedType
- ]
- ];
- }
-
-
- /**
- * @NoAdminRequired
- *
- * @param string $url
- * @param int $parentFolderId
- * @param string $title
- * @param string $user
- * @param string $password
- * @return array|\OCP\AppFramework\Http\JSONResponse
- */
- public function create($url, $parentFolderId, $title=null,
- $user=null, $password=null){
- try {
- // we need to purge deleted feeds if a feed is created to
- // prevent already exists exceptions
- $this->feedService->purgeDeleted($this->userId, false);
-
- $feed = $this->feedService->create($url, $parentFolderId,
- $this->userId, $title,
- $user, $password);
- $params = ['feeds' => [$feed]];
-
- try {
- $params['newestItemId'] =
- $this->itemService->getNewestItemId($this->userId);
-
- // An exception occurs if there is a newest item. If there is none,
- // simply ignore it and do not add the newestItemId
- } catch (ServiceNotFoundException $ex) {}
-
- return $params;
-
- } catch(ServiceConflictException $ex) {
- return $this->error($ex, Http::STATUS_CONFLICT);
- } catch(ServiceNotFoundException $ex) {
- return $this->error($ex, Http::STATUS_UNPROCESSABLE_ENTITY);
- }
-
- }
-
-
- /**
- * @NoAdminRequired
- *
- * @param int $feedId
- * @return array|\OCP\AppFramework\Http\JSONResponse
- */
- public function delete($feedId){
- try {
- $this->feedService->markDeleted($feedId, $this->userId);
- } catch(ServiceNotFoundException $ex) {
- return $this->error($ex, Http::STATUS_NOT_FOUND);
- }
-
- return [];
- }
-
-
- /**
- * @NoAdminRequired
- *
- * @param int $feedId
- * @return array|\OCP\AppFramework\Http\JSONResponse
- */
- public function update($feedId){
- try {
- $feed = $this->feedService->update($feedId, $this->userId);
-
- return [
- 'feeds' => [
- // only pass unread count to not accidentally readd
- // the feed again
- [
- 'id' => $feed->getId(),
- 'unreadCount' => $feed->getUnreadCount()
- ]
- ]
- ];
-
- } catch(ServiceNotFoundException $ex) {
- return $this->error($ex, Http::STATUS_NOT_FOUND);
- }
-
- }
-
-
- /**
- * @NoAdminRequired
- *
- * @param array $json
- * @return array
- */
- public function import($json) {
- $feed = $this->feedService->importArticles($json, $this->userId);
-
- $params = [
- 'starred' => $this->itemService->starredCount($this->userId)
- ];
-
- if($feed) {
- $params['feeds'] = [$feed];
- }
-
- return $params;
- }
-
-
- /**
- * @NoAdminRequired
- *
- * @param int $feedId
- * @param int $highestItemId
- * @return array
- */
- public function read($feedId, $highestItemId){
- $this->itemService->readFeed($feedId, $highestItemId, $this->userId);
-
- return [
- 'feeds' => [
- [
- 'id' => $feedId,
- 'unreadCount' => 0
- ]
- ]
- ];
- }
-
-
- /**
- * @NoAdminRequired
- *
- * @param int $feedId
- * @return array|\OCP\AppFramework\Http\JSONResponse
- */
- public function restore($feedId){
- try {
- $this->feedService->unmarkDeleted($feedId, $this->userId);
- } catch(ServiceNotFoundException $ex) {
- return $this->error($ex, Http::STATUS_NOT_FOUND);
- }
-
- return [];
- }
-
- /**
- * @NoAdminRequired
- *
- * @param int $feedId
- * @param bool $pinned
- * @param bool $fullTextEnabled
- * @param int $updateMode
- * @param int $ordering
- * @param int $folderId
- * @param string $title
- */
- public function patch($feedId, $pinned=null, $fullTextEnabled=null,
- $updateMode=null, $ordering=null, $title=null,
- $folderId=null) {
- $attributes = [
- 'pinned' => $pinned,
- 'fullTextEnabled' => $fullTextEnabled,
- 'updateMode' => $updateMode,
- 'ordering' => $ordering,
- 'title' => $title,
- 'folderId' => $folderId
- ];
-
- $diff = array_filter($attributes, function ($value) {
- return $value !== null;
- });
-
- try {
- $this->feedService->patch($feedId, $this->userId, $diff);
- } catch(ServiceNotFoundException $ex) {
- return $this->error($ex, Http::STATUS_NOT_FOUND);
- }
-
- return [];
- }
-
-}