Completed
Push — master ( 03841e...c8ea4b )
by Sherif
05:27
created
src/Modules/Core/Http/Controllers/BaseApiController.php 1 patch
Indentation   +235 added lines, -235 removed lines patch added patch discarded remove patch
@@ -9,243 +9,243 @@
 block discarded – undo
9 9
 
10 10
 class BaseApiController extends Controller
11 11
 {
12
-    /**
13
-     * The errorHandler implementation.
14
-     * 
15
-     * @var errorHandler
16
-     */
17
-    protected $errorHandler;
18
-
19
-    /**
20
-     * The config implementation.
21
-     * 
22
-     * @var config
23
-     */
24
-    protected $config;
25
-
26
-    /**
27
-     * The model implementation.
28
-     * 
29
-     * @var model
30
-     */
31
-    protected $model;
32
-
33
-    /**
34
-     * Create new BaseApiController instance.
35
-     * 
36
-     * @param errorHandler
37
-     */
38
-    public function __construct(ErrorHandler $errorHandler, CoreConfig $config)
39
-    {
40
-        \Session::set('timeZoneDiff', \Request::header('time-zone-diff') ?: 0);
12
+	/**
13
+	 * The errorHandler implementation.
14
+	 * 
15
+	 * @var errorHandler
16
+	 */
17
+	protected $errorHandler;
18
+
19
+	/**
20
+	 * The config implementation.
21
+	 * 
22
+	 * @var config
23
+	 */
24
+	protected $config;
25
+
26
+	/**
27
+	 * The model implementation.
28
+	 * 
29
+	 * @var model
30
+	 */
31
+	protected $model;
32
+
33
+	/**
34
+	 * Create new BaseApiController instance.
35
+	 * 
36
+	 * @param errorHandler
37
+	 */
38
+	public function __construct(ErrorHandler $errorHandler, CoreConfig $config)
39
+	{
40
+		\Session::set('timeZoneDiff', \Request::header('time-zone-diff') ?: 0);
41 41
         
42
-        $this->errorHandler        = $errorHandler;
43
-        $this->config              = $config->getConfig();
42
+		$this->errorHandler        = $errorHandler;
43
+		$this->config              = $config->getConfig();
44 44
         
45
-        $this->model               = property_exists($this, 'model') ? $this->model : false;
46
-        $this->validationRules     = property_exists($this, 'validationRules') ? $this->validationRules : false;
47
-        $this->skipPermissionCheck = property_exists($this, 'skipPermissionCheck') ? $this->skipPermissionCheck : [];
48
-        $this->skipLoginCheck      = property_exists($this, 'skipLoginCheck') ? $this->skipLoginCheck : [];
45
+		$this->model               = property_exists($this, 'model') ? $this->model : false;
46
+		$this->validationRules     = property_exists($this, 'validationRules') ? $this->validationRules : false;
47
+		$this->skipPermissionCheck = property_exists($this, 'skipPermissionCheck') ? $this->skipPermissionCheck : [];
48
+		$this->skipLoginCheck      = property_exists($this, 'skipLoginCheck') ? $this->skipLoginCheck : [];
49 49
         
50
-        $this->relations           = array_key_exists($this->model, $this->config['relations']) ? $this->config['relations'][$this->model] : false;
51
-        $route                     = explode('@',\Route::currentRouteAction())[1];
52
-        $this->checkPermission(explode('_', snake_case($route))[1]);
53
-    }
54
-
55
-    /**
56
-     * Fetch all records with relations from model repository.
57
-     * 
58
-     * @param  string  $sortBy
59
-     * @param  boolean $desc
60
-     * @return \Illuminate\Http\Response
61
-     */
62
-    public function getIndex() 
63
-    {
64
-        if ($this->model)
65
-        {
66
-            $relations = $this->relations && $this->relations['all'] ? $this->relations['all'] : [];
67
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->all($relations), 200);
68
-        }
69
-    }
70
-
71
-    /**
72
-     * Fetch the single object with relations from model repository.
73
-     * 
74
-     * @param  integer $id
75
-     * @return \Illuminate\Http\Response
76
-     */
77
-    public function getFind($id) 
78
-    {
79
-        if ($this->model) 
80
-        {
81
-            $relations = $this->relations && $this->relations['find'] ? $this->relations['find'] : [];
82
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->find($id, $relations), 200);
83
-        }
84
-    }
85
-
86
-    /**
87
-     * Paginate all records with relations from model repository
88
-     * that matche the given query.
89
-     * 
90
-     * @param  string  $query
91
-     * @param  integer $perPage
92
-     * @param  string  $sortBy
93
-     * @param  boolean $desc
94
-     * @return \Illuminate\Http\Response
95
-     */
96
-    public function getSearch($query = '', $perPage = 15, $sortBy = 'created_at', $desc = 1) 
97
-    {
98
-        if ($this->model) 
99
-        {
100
-            $relations = $this->relations && $this->relations['paginate'] ? $this->relations['paginate'] : [];
101
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->search($query, $perPage, $relations, $sortBy, $desc), 200);
102
-        }
103
-    }
104
-
105
-    /**
106
-     * Fetch records from the storage based on the given
107
-     * condition.
108
-     * 
109
-     * @param  \Illuminate\Http\Request  $request
110
-     * @param  string  $sortBy
111
-     * @param  boolean $desc
112
-     * @return \Illuminate\Http\Response
113
-     */
114
-    public function postFindby(Request $request, $sortBy = 'created_at', $desc = 1) 
115
-    {
116
-        if ($this->model) 
117
-        {
118
-            $relations = $this->relations && $this->relations['findBy'] ? $this->relations['findBy'] : [];
119
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->findBy($request->all(), $relations, $sortBy, $desc), 200);
120
-        }
121
-    }
122
-
123
-    /**
124
-     * Fetch the first record from the storage based on the given
125
-     * condition.
126
-     * 
127
-     * @param  \Illuminate\Http\Request  $request
128
-     * @return \Illuminate\Http\Response
129
-     */
130
-    public function postFirst(Request $request) 
131
-    {
132
-        if ($this->model) 
133
-        {
134
-            $relations = $this->relations && $this->relations['first'] ? $this->relations['first'] : [];
135
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->first($request->all(), $relations), 200);
136
-        }
137
-    }
138
-
139
-    /**
140
-     * Paginate all records with relations from model repository.
141
-     * 
142
-     * @param  integer $perPage
143
-     * @param  string  $sortBy
144
-     * @param  boolean $desc
145
-     * @return \Illuminate\Http\Response
146
-     */
147
-    public function getPaginate($perPage = 15, $sortBy = 'created_at', $desc = 1) 
148
-    {
149
-        if ($this->model) 
150
-        {
151
-            $relations = $this->relations && $this->relations['paginate'] ? $this->relations['paginate'] : [];
152
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->paginate($perPage, $relations, $sortBy, $desc), 200);
153
-        }
154
-    }
155
-
156
-    /**
157
-     * Fetch all records with relations based on
158
-     * the given condition from storage in pages.
159
-     * 
160
-     * @param  \Illuminate\Http\Request  $request
161
-     * @param  integer $perPage
162
-     * @param  string  $sortBy
163
-     * @param  boolean $desc
164
-     * @return \Illuminate\Http\Response
165
-     */
166
-    public function postPaginateby(Request $request, $perPage = 15, $sortBy = 'created_at', $desc = 1) 
167
-    {
168
-        if ($this->model) 
169
-        {
170
-            $relations = $this->relations && $this->relations['paginateBy'] ? $this->relations['paginateBy'] : [];
171
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->paginateBy($request->all(), $perPage, $relations, $sortBy, $desc), 200);
172
-        }
173
-    }
174
-
175
-    /**
176
-     * Save the given model to repository.
177
-     * 
178
-     * @param  \Illuminate\Http\Request  $request
179
-     * @return \Illuminate\Http\Response
180
-     */
181
-    public function postSave(Request $request) 
182
-    {
183
-        foreach ($this->validationRules as &$rule) 
184
-        {
185
-            if (strpos($rule, 'exists') && ! strpos($rule, 'deleted_at,NULL')) 
186
-            {
187
-                $rule .= ',deleted_at,NULL';
188
-            }
189
-
190
-            if ($request->has('id')) 
191
-            {
192
-                $rule = str_replace('{id}', $request->get('id'), $rule);
193
-            }
194
-            else
195
-            {
196
-                $rule = str_replace(',{id}', '', $rule);
197
-            }
198
-        }
50
+		$this->relations           = array_key_exists($this->model, $this->config['relations']) ? $this->config['relations'][$this->model] : false;
51
+		$route                     = explode('@',\Route::currentRouteAction())[1];
52
+		$this->checkPermission(explode('_', snake_case($route))[1]);
53
+	}
54
+
55
+	/**
56
+	 * Fetch all records with relations from model repository.
57
+	 * 
58
+	 * @param  string  $sortBy
59
+	 * @param  boolean $desc
60
+	 * @return \Illuminate\Http\Response
61
+	 */
62
+	public function getIndex() 
63
+	{
64
+		if ($this->model)
65
+		{
66
+			$relations = $this->relations && $this->relations['all'] ? $this->relations['all'] : [];
67
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->all($relations), 200);
68
+		}
69
+	}
70
+
71
+	/**
72
+	 * Fetch the single object with relations from model repository.
73
+	 * 
74
+	 * @param  integer $id
75
+	 * @return \Illuminate\Http\Response
76
+	 */
77
+	public function getFind($id) 
78
+	{
79
+		if ($this->model) 
80
+		{
81
+			$relations = $this->relations && $this->relations['find'] ? $this->relations['find'] : [];
82
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->find($id, $relations), 200);
83
+		}
84
+	}
85
+
86
+	/**
87
+	 * Paginate all records with relations from model repository
88
+	 * that matche the given query.
89
+	 * 
90
+	 * @param  string  $query
91
+	 * @param  integer $perPage
92
+	 * @param  string  $sortBy
93
+	 * @param  boolean $desc
94
+	 * @return \Illuminate\Http\Response
95
+	 */
96
+	public function getSearch($query = '', $perPage = 15, $sortBy = 'created_at', $desc = 1) 
97
+	{
98
+		if ($this->model) 
99
+		{
100
+			$relations = $this->relations && $this->relations['paginate'] ? $this->relations['paginate'] : [];
101
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->search($query, $perPage, $relations, $sortBy, $desc), 200);
102
+		}
103
+	}
104
+
105
+	/**
106
+	 * Fetch records from the storage based on the given
107
+	 * condition.
108
+	 * 
109
+	 * @param  \Illuminate\Http\Request  $request
110
+	 * @param  string  $sortBy
111
+	 * @param  boolean $desc
112
+	 * @return \Illuminate\Http\Response
113
+	 */
114
+	public function postFindby(Request $request, $sortBy = 'created_at', $desc = 1) 
115
+	{
116
+		if ($this->model) 
117
+		{
118
+			$relations = $this->relations && $this->relations['findBy'] ? $this->relations['findBy'] : [];
119
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->findBy($request->all(), $relations, $sortBy, $desc), 200);
120
+		}
121
+	}
122
+
123
+	/**
124
+	 * Fetch the first record from the storage based on the given
125
+	 * condition.
126
+	 * 
127
+	 * @param  \Illuminate\Http\Request  $request
128
+	 * @return \Illuminate\Http\Response
129
+	 */
130
+	public function postFirst(Request $request) 
131
+	{
132
+		if ($this->model) 
133
+		{
134
+			$relations = $this->relations && $this->relations['first'] ? $this->relations['first'] : [];
135
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->first($request->all(), $relations), 200);
136
+		}
137
+	}
138
+
139
+	/**
140
+	 * Paginate all records with relations from model repository.
141
+	 * 
142
+	 * @param  integer $perPage
143
+	 * @param  string  $sortBy
144
+	 * @param  boolean $desc
145
+	 * @return \Illuminate\Http\Response
146
+	 */
147
+	public function getPaginate($perPage = 15, $sortBy = 'created_at', $desc = 1) 
148
+	{
149
+		if ($this->model) 
150
+		{
151
+			$relations = $this->relations && $this->relations['paginate'] ? $this->relations['paginate'] : [];
152
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->paginate($perPage, $relations, $sortBy, $desc), 200);
153
+		}
154
+	}
155
+
156
+	/**
157
+	 * Fetch all records with relations based on
158
+	 * the given condition from storage in pages.
159
+	 * 
160
+	 * @param  \Illuminate\Http\Request  $request
161
+	 * @param  integer $perPage
162
+	 * @param  string  $sortBy
163
+	 * @param  boolean $desc
164
+	 * @return \Illuminate\Http\Response
165
+	 */
166
+	public function postPaginateby(Request $request, $perPage = 15, $sortBy = 'created_at', $desc = 1) 
167
+	{
168
+		if ($this->model) 
169
+		{
170
+			$relations = $this->relations && $this->relations['paginateBy'] ? $this->relations['paginateBy'] : [];
171
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->paginateBy($request->all(), $perPage, $relations, $sortBy, $desc), 200);
172
+		}
173
+	}
174
+
175
+	/**
176
+	 * Save the given model to repository.
177
+	 * 
178
+	 * @param  \Illuminate\Http\Request  $request
179
+	 * @return \Illuminate\Http\Response
180
+	 */
181
+	public function postSave(Request $request) 
182
+	{
183
+		foreach ($this->validationRules as &$rule) 
184
+		{
185
+			if (strpos($rule, 'exists') && ! strpos($rule, 'deleted_at,NULL')) 
186
+			{
187
+				$rule .= ',deleted_at,NULL';
188
+			}
189
+
190
+			if ($request->has('id')) 
191
+			{
192
+				$rule = str_replace('{id}', $request->get('id'), $rule);
193
+			}
194
+			else
195
+			{
196
+				$rule = str_replace(',{id}', '', $rule);
197
+			}
198
+		}
199 199
         
200
-        $this->validate($request, $this->validationRules);
201
-
202
-        if ($this->model) 
203
-        {
204
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->save($request->all()), 200);
205
-        }
206
-    }
207
-
208
-    /**
209
-     * Delete by the given id from model repository.
210
-     * 
211
-     * @param  integer  $id
212
-     * @return \Illuminate\Http\Response
213
-     */
214
-    public function getDelete($id) 
215
-    {
216
-        if ($this->model) 
217
-        {
218
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->delete($id), 200);
219
-        }
220
-    }
221
-
222
-    /**
223
-     * Check if the logged in user can do the given permission.
224
-     * 
225
-     * @param  string $permission
226
-     * @return void
227
-     */
228
-    private function checkPermission($permission)
229
-    {
230
-        $permission = $permission !== 'index' ? $permission : 'list';
231
-        if ($permission == 'method') 
232
-        {
233
-            $error = $this->errorHandler->notFound('method');
234
-            abort($error['status'], $error['message']);
235
-        }
236
-        else if ( ! in_array($permission, $this->skipLoginCheck)) 
237
-        {
238
-            if ( ! \Auth::check()) 
239
-            {
240
-                $error = $this->errorHandler->unAuthorized();
241
-                abort($error['status'], $error['message']);
242
-            }
243
-            else if ( ! in_array($permission, $this->skipPermissionCheck) && 
244
-                      ! \Core::users()->can($permission, $this->model))
245
-            {
246
-                $error = $this->errorHandler->noPermissions();
247
-                abort($error['status'], $error['message']);
248
-            }
249
-        }
250
-    }
200
+		$this->validate($request, $this->validationRules);
201
+
202
+		if ($this->model) 
203
+		{
204
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->save($request->all()), 200);
205
+		}
206
+	}
207
+
208
+	/**
209
+	 * Delete by the given id from model repository.
210
+	 * 
211
+	 * @param  integer  $id
212
+	 * @return \Illuminate\Http\Response
213
+	 */
214
+	public function getDelete($id) 
215
+	{
216
+		if ($this->model) 
217
+		{
218
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->delete($id), 200);
219
+		}
220
+	}
221
+
222
+	/**
223
+	 * Check if the logged in user can do the given permission.
224
+	 * 
225
+	 * @param  string $permission
226
+	 * @return void
227
+	 */
228
+	private function checkPermission($permission)
229
+	{
230
+		$permission = $permission !== 'index' ? $permission : 'list';
231
+		if ($permission == 'method') 
232
+		{
233
+			$error = $this->errorHandler->notFound('method');
234
+			abort($error['status'], $error['message']);
235
+		}
236
+		else if ( ! in_array($permission, $this->skipLoginCheck)) 
237
+		{
238
+			if ( ! \Auth::check()) 
239
+			{
240
+				$error = $this->errorHandler->unAuthorized();
241
+				abort($error['status'], $error['message']);
242
+			}
243
+			else if ( ! in_array($permission, $this->skipPermissionCheck) && 
244
+					  ! \Core::users()->can($permission, $this->model))
245
+			{
246
+				$error = $this->errorHandler->noPermissions();
247
+				abort($error['status'], $error['message']);
248
+			}
249
+		}
250
+	}
251 251
 }
Please login to merge, or discard this patch.
src/Modules/Core/AbstractRepositories/AbstractRepositoryContainer.php 2 patches
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -4,34 +4,34 @@
 block discarded – undo
4 4
 
5 5
 abstract class AbstractRepositoryContainer implements RepositoryContainerInterface
6 6
 {
7
-    /**
8
-     * Construct the repository class name based on
9
-     * the method name called, search in the 
10
-     * given namespaces for the class and 
11
-     * return an instance.
12
-     * 
13
-     * @param  string $name the called method name
14
-     * @param  array  $arguments the method arguments
15
-     * @return object
16
-     */
7
+	/**
8
+	 * Construct the repository class name based on
9
+	 * the method name called, search in the 
10
+	 * given namespaces for the class and 
11
+	 * return an instance.
12
+	 * 
13
+	 * @param  string $name the called method name
14
+	 * @param  array  $arguments the method arguments
15
+	 * @return object
16
+	 */
17 17
 	public function __call($name, $arguments)
18
-    {
19
-    	foreach ($this->getRepoNameSpace() as $repoNameSpace) 
20
-    	{
21
-            $class      = rtrim($repoNameSpace, '\\') . '\\' . ucfirst(str_singular($name)) . 'Repository';
22
-    		if (class_exists($class)) 
23
-    		{
24
-        		return \App::make($class);
25
-    		}
26
-    	}
27
-    }
18
+	{
19
+		foreach ($this->getRepoNameSpace() as $repoNameSpace) 
20
+		{
21
+			$class      = rtrim($repoNameSpace, '\\') . '\\' . ucfirst(str_singular($name)) . 'Repository';
22
+			if (class_exists($class)) 
23
+			{
24
+				return \App::make($class);
25
+			}
26
+		}
27
+	}
28 28
 
29
-     /**
30
-     * Abstract methods that return the necessary 
31
-     * information (repositories namespaces)
32
-     * needed to preform the previous actions.
33
-     * 
34
-     * @return array
35
-     */
36
-    abstract protected function getRepoNameSpace();
29
+	 /**
30
+	  * Abstract methods that return the necessary 
31
+	  * information (repositories namespaces)
32
+	  * needed to preform the previous actions.
33
+	  * 
34
+	  * @return array
35
+	  */
36
+	abstract protected function getRepoNameSpace();
37 37
 }
38 38
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@
 block discarded – undo
18 18
     {
19 19
     	foreach ($this->getRepoNameSpace() as $repoNameSpace) 
20 20
     	{
21
-            $class      = rtrim($repoNameSpace, '\\') . '\\' . ucfirst(str_singular($name)) . 'Repository';
21
+            $class = rtrim($repoNameSpace, '\\').'\\'.ucfirst(str_singular($name)).'Repository';
22 22
     		if (class_exists($class)) 
23 23
     		{
24 24
         		return \App::make($class);
Please login to merge, or discard this patch.