]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Move AlreadyFulfilled check to Fave::addNew
authorMikael Nordfeldth <mmn@hethane.se>
Tue, 10 Mar 2015 10:50:16 +0000 (11:50 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Tue, 10 Mar 2015 10:56:23 +0000 (11:56 +0100)
plugins/AnonymousFave/actions/anonfavor.php
plugins/Favorite/actions/apifavoritecreate.php
plugins/Favorite/actions/favor.php
plugins/Favorite/classes/Fave.php
plugins/Favorite/lib/favcommand.php

index 4029154d7208b804409fce2b41d293848ea61bf2..287c25cbe98455c12c698e7c31bbfa471554deea 100644 (file)
@@ -62,11 +62,6 @@ class AnonFavorAction extends RedirectingAction
         $notice = Notice::getKV($id);
         $token  = $this->checkSessionToken();
 
-        if (Fave::existsForProfile($notice, $profile)) {
-            // TRANS: Client error.
-            throw new AlreadyFulfilledException(_m('This notice is already a favorite!'));
-        }
-
         // Throws exception
         $stored = Fave::addNew($profile, $notice);
 
index 736bd7b0a19eaa720cf49040bd9255912f9c4afa..7e63b199e2285a9fd77327816a40a2a7dbe0c51d 100644 (file)
@@ -89,20 +89,13 @@ class ApiFavoriteCreateAction extends ApiAuthAction
             );
         }
 
-        // Note: Twitter lets you fave things repeatedly via API.
-
-        if (Fave::existsForProfile($this->notice, $this->scoped)) {
-            $this->clientError(
-                // TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite.
-                _('This status is already a favorite.'),
-                403,
-                $this->format
-            );
+        try {
+            $stored = Fave::addNew($this->scoped, $this->notice);
+        } catch (AlreadyFulfilledException $e) {
+            // Note: Twitter lets you fave things repeatedly via API.
+            $this->clientError($e->getMessage(), 403);
         }
 
-        // throws exception on failure
-        $stored = Fave::addNew($this->scoped, $this->notice);
-
         if ($this->format == 'xml') {
             $this->showSingleXmlStatus($this->notice);
         } elseif ($this->format == 'json') {
index f6590784509348ae605737699360c295ee5e1764..0d52f7796176efa01269d14eed7b11cce74df608 100644 (file)
@@ -61,12 +61,7 @@ class FavorAction extends FormAction
 
     protected function doPost()
     {
-        if (Fave::existsForProfile($this->target, $this->scoped)) {
-            // TRANS: Client error displayed when trying to mark a notice as favorite that already is a favorite.
-            throw new AlreadyFulfilledException(_('You have already favorited this!'));
-        }
-
-        // throws exception on failure
+        // throws exception on failure, might be an AlreadyFulfilledException
         $stored = Fave::addNew($this->scoped, $this->target);
 
         // TRANS: Message when a favor action has been taken for a notice.
index 094b65feaa94fd19b38f6b5dd12e6af5b48ebd10..ba0d04ba25f9a9ecaaea8ca35ffab4e6ec466039 100644 (file)
@@ -48,6 +48,11 @@ class Fave extends Managed_DataObject
      * @throws Exception on failure
      */
     static function addNew(Profile $actor, Notice $target) {
+        if (self::existsForProfile($target, $actor)) {
+            // TRANS: Client error displayed when trying to mark a notice as favorite that already is a favorite.
+            throw new AlreadyFulfilledException(_('You have already favorited this!'));
+        }
+
         $act = new Activity();
         $act->type    = ActivityObject::ACTIVITY;
         $act->verb    = ActivityVerb::FAVORITE;
index cf5ca79218ed293377555b7213ea2d92c37748a7..6c7d0d1946ae1c09c4418ebcabc228937ad1f268 100644 (file)
@@ -14,17 +14,6 @@ class FavCommand extends Command
     { 
         $notice = $this->getNotice($this->other); 
  
-        $fave            = new Fave(); 
-        $fave->user_id   = $this->user->id; 
-        $fave->notice_id = $notice->id; 
-        $fave->find(); 
-        if ($fave->fetch()) { 
-            // TRANS: Error message text shown when a favorite could not be set because it has already been favorited. 
-            $channel->error($this->user, _('Could not create favorite: Already favorited.')); 
-            return; 
-        } 
         try {
             $fave = Fave::addNew($this->user->getProfile(), $notice); 
         } catch (Exception $e) {