]> dev.renevier.net Git - syj.git/blobdiff - application/models/PathMapper.php
interface to manage list of created routes
[syj.git] / application / models / PathMapper.php
index 01e2818f567bb42524f66309fc61eeac2f45f35d..1e0e973c4489dc0e1bb9673cefcbeb30c949a72d 100644 (file)
@@ -42,9 +42,18 @@ class Syj_Model_PathMapper
         return $this->_fetchItem($select, $path);
     }
 
-    public function fetchAll() {
+    public function fetchByCreator(Syj_Model_User $user) {
         $select = $this->_select();
+        $select->where('creator = ?', (int)$user->id)->order('id');
+        return $this->fetchAll($select);
+    }
+
+    public function fetchAll(Zend_Db_Table_Select $select) {
+        if (!isset($select)) {
+            $select = $this->_select();
+        }
 
+        $table = $this->getDbTable();
         $resultSet = $table->fetchAll($select);
 
         $entries   = array();
@@ -58,8 +67,9 @@ class Syj_Model_PathMapper
     public function save (Syj_Model_Path $path) {
         $data = array(
             'geom'=> (string)$path->geom,
-            'owner'=> $path->owner->id,
-            'title'=> $path->title
+            'creator'=> $path->creator->id,
+            'title'=> $path->title,
+            'creator_ip'=> $path->creatorIp
         );
         if (null === ($id = $path->getId())) {
             $path->id = $this->getDbTable()->insert($data);
@@ -68,6 +78,10 @@ class Syj_Model_PathMapper
         }
     }
 
+    public function delete (Syj_Model_Path $path) {
+        $this->getDbTable()->delete(array('id = ?' => $path->getId()));
+    }
+
     protected function _itemFromRow(Syj_Model_Path $item, Zend_Db_Table_Row $row) {
         $decoder = new gisconverter\WKT();
         $geom = $decoder->geomFromText($row->wkt);
@@ -75,13 +89,14 @@ class Syj_Model_PathMapper
         $item->setId($row->id)->
             setGeom($geom)->
             setTitle($row->title)->
-            setUrlComp($row->urlcomp);
+            setUrlComp($row->urlcomp)->
+            setCreatorIp($row->creator_ip);
 
-        if (!$item->getOwner()) {
+        if (!$item->getCreator()) {
             $user = new Syj_Model_User();
             $userMapper = new Syj_Model_UserMapper();
-            if ($userMapper->find($row->owner, $user)) {
-                $item->setOwner($user);
+            if ($userMapper->find($row->creator, $user)) {
+                $item->setCreator($user);
             }
         }
         return $item;
@@ -99,7 +114,7 @@ class Syj_Model_PathMapper
     protected function _select() {
         $table = $this->getDbTable();
         $select = $table->select();
-        $select->from($table, array('id', 'ST_AsText(geom) AS wkt', 'owner', 'title', 'urlcomp'));
+        $select->from($table, array('id', 'ST_AsText(geom) AS wkt', 'creator', 'title', 'urlcomp', 'creator_ip'));
         return $select;
     }