Преглед изворни кода

API move feed to another category

https://github.com/jangernert/FeedReader/issues/59
https://github.com/FreshRSS/FreshRSS/issues/443
Alexandre Alapetite пре 9 година
родитељ
комит
44f22ab8b4
3 измењених фајлова са 19 додато и 15 уклоњено
  1. 1 13
      app/Controllers/feedController.php
  2. 13 0
      app/Models/FeedDAO.php
  3. 5 2
      p/api/greader.php

+ 1 - 13
app/Controllers/feedController.php

@@ -511,21 +511,9 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
 
 		$feed_id = Minz_Request::param('f_id');
 		$cat_id = Minz_Request::param('c_id');
-
-		if ($cat_id === false) {
-			// If category was not given get the default one.
-			$catDAO = new FreshRSS_CategoryDAO();
-			$catDAO->checkDefault();
-			$def_cat = $catDAO->getDefault();
-			$cat_id = $def_cat->id();
-		}
-
 		$feedDAO = FreshRSS_Factory::createFeedDao();
-		$values = array('category' => $cat_id);
 
-		$feed = $feedDAO->searchById($feed_id);
-		if ($feed && ($feed->category() == $cat_id ||
-		              $feedDAO->updateFeed($feed_id, $values))) {
+		if ($feedDAO->moveFeed($feed_id, $cat_id)) {
 			// TODO: return something useful
 		} else {
 			Minz_Log::warning('Cannot move feed `' . $feed_id . '` ' .

+ 13 - 0
app/Models/FeedDAO.php

@@ -136,6 +136,19 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
 		}
 	}
 
+	public function moveFeed($feed_id, $cat_id) {
+		if ($cat_id <= 0) {
+			// If category was not given get the default one.
+			$catDAO = new FreshRSS_CategoryDAO();
+			$catDAO->checkDefault();
+			$def_cat = $catDAO->getDefault();
+			$cat_id = $def_cat->id();
+		}
+		$feed = $this->searchById($feed_id);
+		return $feed && ($feed->category() == $cat_id ||
+			$this->updateFeed($feed_id, array('category' => $cat_id)));
+	}
+
 	public function deleteFeed($id) {
 		$sql = 'DELETE FROM `' . $this->prefix . 'feed` WHERE id=?';
 		$stm = $this->bd->prepare($sql);

+ 5 - 2
p/api/greader.php

@@ -337,14 +337,17 @@ function subscriptionEdit($streamNames, $titles, $action, $add = '', $remove = '
 					break;
 				case 'edit':
 					if ($feedId > 0) {
-						//TODO
+						if ($feedDAO->moveFeed($feed_id, $cat_id)) {
+							exit('OK');
+						} else {
+							badRequest();
+						}
 					}
 					break;
 			}
 		}
 	}
 	notImplemented();
-	exit('OK');
 }
 
 function unreadCount() {	//http://blog.martindoms.com/2009/10/16/using-the-google-reader-api-part-2/#unread-count