]> git.agnieray.net Git - galette.git/commitdiff
No longer look for saved searches duplicates
authorJohan Cwiklinski <johan@x-tnd.be>
Tue, 2 Nov 2021 20:06:49 +0000 (21:06 +0100)
committerJohan Cwiklinski <johan@x-tnd.be>
Sun, 7 Nov 2021 05:50:39 +0000 (06:50 +0100)
galette/lib/Galette/Entity/SavedSearch.php
galette/lib/Galette/Repository/SavedSearches.php
tests/Galette/Entity/tests/units/SavedSeach.php

index 22ab866711d09c2d1ea91dfe829526714a48a74c..56ba45b802e3b3870d1bb8cc25cb24198bbc6d59 100644 (file)
@@ -7,7 +7,7 @@
  *
  * PHP version 5
  *
- * Copyright © 2019 The Galette Team
+ * Copyright © 2019-2021 The Galette Team
  *
  * This file is part of Galette (http://galette.tuxfamily.org).
  *
@@ -28,7 +28,7 @@
  * @package   Galette
  *
  * @author    Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2019 The Galette Team
+ * @copyright 2019-2021 The Galette Team
  * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
  * @link      http://galette.tuxfamily.org
  * @since     Available since 0.9.3dev - 2019-03-25
@@ -49,7 +49,7 @@ use Analog\Analog;
  * @name      SavedSearch
  * @package   Galette
  * @author    Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2019 The Galette Team
+ * @copyright 2019-2021 The Galette Team
  * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
  * @link      http://galette.tuxfamily.org
  * @since     Available since 0.9.3dev - 2019-03-25
@@ -185,46 +185,22 @@ class SavedSearch
     public function store()
     {
         $parameters = json_encode($this->parameters);
-        $parameters_sum = sha1($parameters, true);
-        if ($this->zdb->isPostgres()) {
-            $parameters_sum = pg_escape_bytea($parameters_sum);
-        }
         $data = array(
             'name'              => $this->name,
             'parameters'        => $parameters,
-            'parameters_sum'    => $parameters_sum,
+            'parameters_sum'   => '',
             'id_adh'            => $this->author_id,
             'creation_date'     => ($this->creation_date !== null ? $this->creation_date : date('Y-m-d H:i:s')),
             'form'              => $this->form
         );
 
         try {
-            $select = $this->zdb->select(self::TABLE);
-            $select
-                ->where([
-                    'form'              => $this->form,
-                    'parameters_sum'    => $parameters_sum,
-                    'id_adh'            => $this->author_id,
-                ])
-                ->limit(1);
-
-            $results = $this->zdb->execute($select);
-            if ($results->count() !== 0) {
-                $result = $results->current();
-                //search already exists
-                Analog::log(
-                    str_replace('%name', $result->name, 'Already saved as "%name"!'),
-                    Analog::INFO
-                );
-                return null;
-            } else {
-                $insert = $this->zdb->insert(self::TABLE);
-                $insert->values($data);
-                $add = $this->zdb->execute($insert);
-                if (!$add->count() > 0) {
-                    Analog::log('Not stored!', Analog::ERROR);
-                    return false;
-                }
+            $insert = $this->zdb->insert(self::TABLE);
+            $insert->values($data);
+            $add = $this->zdb->execute($insert);
+            if (!$add->count() > 0) {
+                Analog::log('Not stored!', Analog::ERROR);
+                return false;
             }
             return true;
         } catch (Throwable $e) {
@@ -233,7 +209,7 @@ class SavedSearch
                 "\n" . print_r($data, true),
                 Analog::ERROR
             );
-            return false;
+            throw $e;
         }
     }
 
index 3d9bc23ded6f21cf538ad2dca2e4bf99f1a9b81a..a607bcae5cdc357eb4fcec124adce0a8b7865335 100644 (file)
@@ -117,7 +117,7 @@ class SavedSearches
                 'Cannot list saved searches | ' . $e->getMessage(),
                 Analog::WARNING
             );
-            return false;
+            throw $e;
         }
     }
 
index b2701f8ef85691aa1eb346cdd2d9eaa2f54bffd4..317e668258a19e078a76f9e548e13f096e7fa745 100644 (file)
@@ -73,6 +73,7 @@ class SavedSearch extends atoum
         $this->login = new \mock\Galette\Core\Login($this->zdb, $this->i18n);
         $this->calling($this->login)->isLogged = true;
         $this->calling($this->login)->isSuperAdmin = true;
+        $this->calling($this->login)->__get = 0; //to get login id
     }
 
     /**
@@ -112,6 +113,7 @@ class SavedSearch extends atoum
         $i18n->changeLanguage('en_US');
 
         $saved = new \Galette\Entity\SavedSearch($this->zdb, $this->login);
+        $searches = new \Galette\Repository\SavedSearches($this->zdb, $this->login);
 
         $post = [
             'parameters'    => [
@@ -135,7 +137,9 @@ class SavedSearch extends atoum
         //store search
         $this->boolean($saved->check($post))->isTrue();
         $this->boolean($saved->store())->isTrue();
+        $this->array($searches->getList(true))->hasSize(1);
         //store again, got a duplicate
-        $this->variable($saved->store())->isNull();
+        $this->boolean($saved->store())->isTrue();
+        $this->array($searches->getList(true))->hasSize(2);
     }
 }