summaryrefslogtreecommitdiffstats
path: root/ajax/updatefeed.php
blob: f8dc2b13de381d10a60a803cb2c4a15525812baa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
/**
* ownCloud - News app
*
* @author Alessandro Cosentino
* Copyright (c) 2012 - Alessandro Cosentino <cosenal@gmail.com>
*
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING-README file
*
*/

// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('news');
OCP\JSON::callCheck();

$userid = OCP\USER::getUser();

$feedid = $_POST['feedid'];
$feedurl = $_POST['feedurl'];
$folderid = $_POST['folderid'];

$newfeed = OCA\News\Utils::fetch($feedurl);

$newfeedid = false;

if ($newfeed !== null) {
      $feedmapper = new OCA\News\FeedMapper();
      $newfeedid = $feedmapper->save($newfeed, $folderid);
}

$l = OC_L10N::get('news');

if(!$newfeedid) {
	OCP\JSON::error(array('data' => array('message' => $l->t('Error updating feed.'))));
	OCP\Util::writeLog('news','ajax/updatefeed.php: Error updating feed: '.$_POST['feedid'], OCP\Util::ERROR);
	exit();
}
else {
	//TODO: maybe make this more efficient by coding it into OC_News_FeedMapper->save()
	$itemmapper = new OCA\News\ItemMapper();
	$items = $itemmapper->findAll($newfeedid);
	$unreadcounter = 0;
	foreach($items as $item) {
		if(!$item->isRead())
			++$unreadcounter;
	}

	OCP\JSON::success(array('data' => array('message' => $l->t('Feed updated!'), 'unreadcount' => $unreadcounter)));
	exit();
}