Explorar el Código

Model doc; business and data access getAll; route middleware

tags/0.1.0
Robin Thoni hace 9 años
padre
commit
567f2cf3c9
Se han modificado 4 ficheros con 87 adiciones y 80 borrados
  1. 5
    13
      src/Utils/LuBusiness.php
  2. 16
    39
      src/Utils/LuDataAccess.php
  3. 4
    0
      src/Utils/LuModel.php
  4. 62
    28
      src/Utils/LuRoute.php

+ 5
- 13
src/Utils/LuBusiness.php Ver fichero

@@ -101,19 +101,6 @@ abstract class LuBusiness {
101 101
         return $default;
102 102
     }
103 103
 
104
-    /**
105
-     * @param $page int
106
-     * @param $perPage int
107
-     * @param $column string
108
-     * @param $order string
109
-     * @param $query string
110
-     * @return LuDbo[]
111
-     */
112
-    public static function search($page, $perPage, $column, $order, $query = null)
113
-    {
114
-        return static::getDataAccess()->search($page, $perPage, $column, $order, $query);
115
-    }
116
-
117 104
     /**
118 105
      * @param $id int
119 106
      * @return LuDbo|null
@@ -141,4 +128,9 @@ abstract class LuBusiness {
141 128
     {
142 129
         return null;
143 130
     }
131
+
132
+    public static function getAll($page = 0, $perPage = PHP_INT_MAX)
133
+    {
134
+        return static::getDataAccess()->getAll($page, $perPage);
135
+    }
144 136
 }

+ 16
- 39
src/Utils/LuDataAccess.php Ver fichero

@@ -3,19 +3,6 @@
3 3
 namespace Luticate\Utils;
4 4
 
5 5
 abstract class LuDataAccess {
6
-    /**
7
-     * @param $page int
8
-     * @param $perPage int
9
-     * @param $column string
10
-     * @param $order string
11
-     * @param $query string
12
-     * @return LuModel[]
13
-     */
14
-    protected static function search_($page, $perPage, $column, $order, $query)
15
-    {
16
-        return static::getModel();
17
-    }
18
-
19 6
     /**
20 7
      * @param $data LuModel[]
21 8
      * @return LuDbo[]
@@ -31,27 +18,6 @@ abstract class LuDataAccess {
31 18
         return $tab;
32 19
     }
33 20
 
34
-    /**
35
-     * @param $page int
36
-     * @param $perPage int
37
-     * @param $column string
38
-     * @param $order string
39
-     * @param $query string
40
-     * @return LuDbo[]
41
-     */
42
-    public static function search($page, $perPage, $column, $order, $query = null)
43
-    {
44
-        if (is_null($query))
45
-            $data = static::getModel();
46
-        else
47
-            $data = static::search_($page, $perPage, $column, $order, $query);
48
-
49
-        $data = $data->orderBy($column, $order)->take($perPage)->offset($page * $perPage)->get();
50
-
51
-        $tab = self::arrayToDbo($data);
52
-        return $tab;
53
-    }
54
-
55 21
     /**
56 22
      * @param $id int
57 23
      * @return LuModel
@@ -120,18 +86,16 @@ abstract class LuDataAccess {
120 86
      * @param $orders array
121 87
      * @param int $page
122 88
      * @param int $perPage
123
-     * @return array
89
+     * @return LuMultipleDbo
124 90
      */
125 91
     public static function getMultiple($predicates, $orders, $page = 0, $perPage = PHP_INT_MAX)
126 92
     {
127 93
         $model = static::getModel();
128
-        foreach($predicates as $predicate)
129
-        {
94
+        foreach($predicates as $predicate) {
130 95
             $model = $model->where($predicate[0], $predicate[1], $predicate[2]);
131 96
         }
132 97
         $count = $model->count();
133
-        foreach($orders as $order)
134
-        {
98
+        foreach($orders as $order) {
135 99
             $model = $model->orderBy($order[0], $order[1]);
136 100
         }
137 101
         $data = $model->take($perPage)->offset($page * $perPage)->get();
@@ -147,4 +111,17 @@ abstract class LuDataAccess {
147 111
     {
148 112
         return null;
149 113
     }
114
+
115
+    /**
116
+     * @return array
117
+     */
118
+    private static function getOrderBy()
119
+    {
120
+        return array();
121
+    }
122
+
123
+    public static function getAll($page = 0, $perPage = PHP_INT_MAX)
124
+    {
125
+        return self::getMultiple(array(), static::getOrderBy(), $page, $perPage);
126
+    }
150 127
 }

+ 4
- 0
src/Utils/LuModel.php Ver fichero

@@ -13,6 +13,10 @@ use Illuminate\Database\Eloquent\Model;
13 13
  * @method static LuModel orderBy($column, $order)
14 14
  * @method static LuModel take($count)
15 15
  * @method static LuModel offset($offset)
16
+ * @method static LuModel rightJoin($table, $column1, $operator, $column2)
17
+ * @method static LuModel leftJoin($table, $column1, $operator, $column2)
18
+ * @method static LuModel join($table, $column1, $operator, $column2)
19
+ * @method static LuModel groupBy($column)
16 20
  * @method static LuModel[] get()
17 21
  * @method static LuModel first()
18 22
  * @method static int count()

+ 62
- 28
src/Utils/LuRoute.php Ver fichero

@@ -2,65 +2,99 @@
2 2
 
3 3
 namespace Luticate\Utils;
4 4
 
5
-use Illuminate\Http\Request;
6
-
7 5
 class LuRoute {
8 6
     /**
9
-     * @var callable
7
+     * @var string[]
10 8
      */
11
-    private $_middleware;
9
+    private $middleware = array();
12 10
 
13 11
     /**
14
-     * @param $middleware callable
12
+     * @param $middleware string
15 13
      */
16
-    public function setMiddleware($middleware)
14
+    public function addMiddleware($middleware)
17 15
     {
18
-        $this->_middleware = $middleware;
16
+        $this->middleware[] = $middleware;
19 17
     }
20 18
 
21
-    private function getOptions($url, $business, $method, $permissions = array())
19
+    private function getOptions($url, $business, $method, $permissions, $middleware)
22 20
     {
23
-        $middleware = $this->_middleware;
24
-        return [function(Request $request) use($business, $method, $permissions, $middleware)
21
+        if (!is_array($permissions)) {
22
+            $permissions = array($permissions);
23
+        }
24
+        if (!is_array($middleware)) {
25
+            $middleware = array($middleware);
26
+        }
27
+        $permissions_string = implode(",", $permissions);
28
+        $middleware_string = [];
29
+        foreach (array_merge($this->middleware, $middleware) as $mid) {
30
+            $middleware_string[] = $mid . ":" . $permissions_string;
31
+        }
32
+        return [function() use($business, $method, $permissions)
25 33
         {
26
-            if (!is_array($permissions)) {
27
-                $permissions = array($permissions);
28
-            }
29
-
30
-            if ($middleware != null && !$middleware($permissions, $request)) {
31
-                abort(401);
32
-            }
33
-
34 34
             $controller = new LuController();
35 35
 
36
-            if (strpos($business, "\\") === false)
36
+            if (strpos($business, "\\") === false) {
37 37
                 $business = "App\\Http\\Business\\" . $business . "Business";
38
+            }
38 39
 
39 40
             return $controller->execute($business, $method);
40
-        }];
41
+        },
42
+            'middleware' => $middleware_string];
41 43
     }
42 44
 
43
-    public function get($url, $business, $method, $permissions = array())
45
+    /**
46
+     * @param $url string
47
+     * @param $business string
48
+     * @param $method string
49
+     * @param array $permissions string|string[]
50
+     * @param array $middleware string|string[]
51
+     * @return mixed
52
+     */
53
+    public function get($url, $business, $method, $permissions = array(), $middleware = array())
44 54
     {
45 55
         global $app;
46
-        return $app->get($url, $this->getOptions($url, $business, $method, $permissions));
56
+        return $app->get($url, $this->getOptions($url, $business, $method, $permissions, $middleware));
47 57
     }
48 58
 
49
-    public function post($url, $business, $method, $permissions = array())
59
+    /**
60
+     * @param $url string
61
+     * @param $business string
62
+     * @param $method string
63
+     * @param array $permissions string|string[]
64
+     * @param array $middleware string|string[]
65
+     * @return mixed
66
+     */
67
+    public function post($url, $business, $method, $permissions = array(), $middleware = array())
50 68
     {
51 69
         global $app;
52
-        return $app->post($url, $this->getOptions($url, $business, $method, $permissions));
70
+        return $app->post($url, $this->getOptions($url, $business, $method, $permissions, $middleware));
53 71
     }
54 72
 
55
-    public function put($url, $business, $method, $permissions = array())
73
+    /**
74
+     * @param $url string
75
+     * @param $business string
76
+     * @param $method string
77
+     * @param array $permissions string|string[]
78
+     * @param array $middleware string|string[]
79
+     * @return mixed
80
+     */
81
+    public function put($url, $business, $method, $permissions = array(), $middleware = array())
56 82
     {
57 83
         global $app;
58
-        return $app->put($url, $this->getOptions($url, $business, $method, $permissions));
84
+        return $app->put($url, $this->getOptions($url, $business, $method, $permissions, $middleware));
59 85
     }
60 86
 
61
-    public function delete($url, $business, $method, $permissions = array())
87
+    /**
88
+     * @param $url string
89
+     * @param $business string
90
+     * @param $method string
91
+     * @param array $permissions string|string[]
92
+     * @param array $middleware string|string[]
93
+     * @return mixed
94
+     */
95
+    public function delete($url, $business, $method, $permissions = array(), $middleware = array())
62 96
     {
63 97
         global $app;
64
-        return $app->delete($url, $this->getOptions($url, $business, $method, $permissions));
98
+        return $app->delete($url, $this->getOptions($url, $business, $method, $permissions, $middleware));
65 99
     }
66 100
 }

Loading…
Cancelar
Guardar