Completed
Push — master ( 30f758...6ad044 )
by Sherif
09:12
created
src/Modules/Core/Http/Controllers/BaseApiController.php 1 patch
Indentation   +248 added lines, -248 removed lines patch added patch discarded remove patch
@@ -6,283 +6,283 @@
 block discarded – undo
6 6
 
7 7
 class BaseApiController extends Controller
8 8
 {
9
-    /**
10
-     * The config implementation.
11
-     * 
12
-     * @var array
13
-     */
14
-    protected $config;
9
+	/**
10
+	 * The config implementation.
11
+	 * 
12
+	 * @var array
13
+	 */
14
+	protected $config;
15 15
 
16
-    /**
17
-     * The relations implementation.
18
-     * 
19
-     * @var array
20
-     */
21
-    protected $relations;
16
+	/**
17
+	 * The relations implementation.
18
+	 * 
19
+	 * @var array
20
+	 */
21
+	protected $relations;
22 22
 
23
-    /**
24
-     * The repo implementation.
25
-     * 
26
-     * @var object
27
-     */
28
-    protected $repo;
23
+	/**
24
+	 * The repo implementation.
25
+	 * 
26
+	 * @var object
27
+	 */
28
+	protected $repo;
29 29
 
30
-    public function __construct()
31
-    {        
32
-        $this->config              = \CoreConfig::getConfig();
33
-        $this->model               = property_exists($this, 'model') ? $this->model : false;
34
-        $this->validationRules     = property_exists($this, 'validationRules') ? $this->validationRules : false;
35
-        $this->skipPermissionCheck = property_exists($this, 'skipPermissionCheck') ? $this->skipPermissionCheck : [];
36
-        $this->skipLoginCheck      = property_exists($this, 'skipLoginCheck') ? $this->skipLoginCheck : [];
37
-        $route                     = explode('@',\Route::currentRouteAction())[1];
30
+	public function __construct()
31
+	{        
32
+		$this->config              = \CoreConfig::getConfig();
33
+		$this->model               = property_exists($this, 'model') ? $this->model : false;
34
+		$this->validationRules     = property_exists($this, 'validationRules') ? $this->validationRules : false;
35
+		$this->skipPermissionCheck = property_exists($this, 'skipPermissionCheck') ? $this->skipPermissionCheck : [];
36
+		$this->skipLoginCheck      = property_exists($this, 'skipLoginCheck') ? $this->skipLoginCheck : [];
37
+		$route                     = explode('@',\Route::currentRouteAction())[1];
38 38
 
39
-        $this->middleware(function ($request, $next) {
39
+		$this->middleware(function ($request, $next) {
40 40
             
41
-            $this->repo = call_user_func_array("\Core::{$this->model}", []);            
42
-            return $next($request);
43
-        });
41
+			$this->repo = call_user_func_array("\Core::{$this->model}", []);            
42
+			return $next($request);
43
+		});
44 44
 
45
-        $this->checkPermission($route);
46
-        $this->setRelations($route);
47
-        $this->setSessions();
48
-    }
45
+		$this->checkPermission($route);
46
+		$this->setRelations($route);
47
+		$this->setSessions();
48
+	}
49 49
 
50
-    /**
51
-     * Fetch all records with relations from storage.
52
-     * 
53
-     * @param  string  $sortBy The name of the column to sort by.
54
-     * @param  boolean $desc   Sort ascending or descinding (1: desc, 0: asc).
55
-     * @return \Illuminate\Http\Response
56
-     */
57
-    public function index($sortBy = 'created_at', $desc = 1) 
58
-    {
59
-        return \Response::json($this->repo->all($this->relations, $sortBy, $desc), 200);
60
-    }
50
+	/**
51
+	 * Fetch all records with relations from storage.
52
+	 * 
53
+	 * @param  string  $sortBy The name of the column to sort by.
54
+	 * @param  boolean $desc   Sort ascending or descinding (1: desc, 0: asc).
55
+	 * @return \Illuminate\Http\Response
56
+	 */
57
+	public function index($sortBy = 'created_at', $desc = 1) 
58
+	{
59
+		return \Response::json($this->repo->all($this->relations, $sortBy, $desc), 200);
60
+	}
61 61
 
62
-    /**
63
-     * Fetch the single object with relations from storage.
64
-     * 
65
-     * @param  integer $id Id of the requested model.
66
-     * @return \Illuminate\Http\Response
67
-     */
68
-    public function find($id) 
69
-    {
70
-        return \Response::json($this->repo->find($id, $this->relations), 200);
71
-    }
62
+	/**
63
+	 * Fetch the single object with relations from storage.
64
+	 * 
65
+	 * @param  integer $id Id of the requested model.
66
+	 * @return \Illuminate\Http\Response
67
+	 */
68
+	public function find($id) 
69
+	{
70
+		return \Response::json($this->repo->find($id, $this->relations), 200);
71
+	}
72 72
 
73
-    /**
74
-     * Paginate all records with relations from storage
75
-     * that matche the given query.
76
-     * 
77
-     * @param  string  $query   The search text.
78
-     * @param  integer $perPage Number of rows per page default 15.
79
-     * @param  string  $sortBy  The name of the column to sort by.
80
-     * @param  boolean $desc    Sort ascending or descinding (1: desc, 0: asc).
81
-     * @return \Illuminate\Http\Response
82
-     */
83
-    public function search($query = '', $perPage = 15, $sortBy = 'created_at', $desc = 1) 
84
-    {
85
-        return \Response::json($this->repo->search($query, $perPage, $this->relations, $sortBy, $desc), 200);
86
-    }
73
+	/**
74
+	 * Paginate all records with relations from storage
75
+	 * that matche the given query.
76
+	 * 
77
+	 * @param  string  $query   The search text.
78
+	 * @param  integer $perPage Number of rows per page default 15.
79
+	 * @param  string  $sortBy  The name of the column to sort by.
80
+	 * @param  boolean $desc    Sort ascending or descinding (1: desc, 0: asc).
81
+	 * @return \Illuminate\Http\Response
82
+	 */
83
+	public function search($query = '', $perPage = 15, $sortBy = 'created_at', $desc = 1) 
84
+	{
85
+		return \Response::json($this->repo->search($query, $perPage, $this->relations, $sortBy, $desc), 200);
86
+	}
87 87
 
88
-    /**
89
-     * Fetch records from the storage based on the given
90
-     * condition.
91
-     * 
92
-     * @param  \Illuminate\Http\Request  $request
93
-     * @param  string  $sortBy The name of the column to sort by.
94
-     * @param  boolean $desc   Sort ascending or descinding (1: desc, 0: asc).
95
-     * @return \Illuminate\Http\Response
96
-     */
97
-    public function findby(Request $request, $sortBy = 'created_at', $desc = 1) 
98
-    {
99
-        return \Response::json($this->repo->findBy($request->all(), $this->relations, $sortBy, $desc), 200);
100
-    }
88
+	/**
89
+	 * Fetch records from the storage based on the given
90
+	 * condition.
91
+	 * 
92
+	 * @param  \Illuminate\Http\Request  $request
93
+	 * @param  string  $sortBy The name of the column to sort by.
94
+	 * @param  boolean $desc   Sort ascending or descinding (1: desc, 0: asc).
95
+	 * @return \Illuminate\Http\Response
96
+	 */
97
+	public function findby(Request $request, $sortBy = 'created_at', $desc = 1) 
98
+	{
99
+		return \Response::json($this->repo->findBy($request->all(), $this->relations, $sortBy, $desc), 200);
100
+	}
101 101
 
102
-    /**
103
-     * Fetch the first record from the storage based on the given
104
-     * condition.
105
-     * 
106
-     * @param  \Illuminate\Http\Request  $request
107
-     * @return \Illuminate\Http\Response
108
-     */
109
-    public function first(Request $request) 
110
-    {
111
-        return \Response::json($this->repo->first($request->all(), $this->relations), 200);
112
-    }
102
+	/**
103
+	 * Fetch the first record from the storage based on the given
104
+	 * condition.
105
+	 * 
106
+	 * @param  \Illuminate\Http\Request  $request
107
+	 * @return \Illuminate\Http\Response
108
+	 */
109
+	public function first(Request $request) 
110
+	{
111
+		return \Response::json($this->repo->first($request->all(), $this->relations), 200);
112
+	}
113 113
 
114
-    /**
115
-     * Paginate all records with relations from storage.
116
-     * 
117
-     * @param  integer $perPage Number of rows per page default 15.
118
-     * @param  string  $sortBy  The name of the column to sort by.
119
-     * @param  boolean $desc    Sort ascending or descinding (1: desc, 0: asc).
120
-     * @return \Illuminate\Http\Response
121
-     */
122
-    public function paginate($perPage = 15, $sortBy = 'created_at', $desc = 1) 
123
-    {
124
-        return \Response::json($this->repo->paginate($perPage, $this->relations, $sortBy, $desc), 200);
125
-    }
114
+	/**
115
+	 * Paginate all records with relations from storage.
116
+	 * 
117
+	 * @param  integer $perPage Number of rows per page default 15.
118
+	 * @param  string  $sortBy  The name of the column to sort by.
119
+	 * @param  boolean $desc    Sort ascending or descinding (1: desc, 0: asc).
120
+	 * @return \Illuminate\Http\Response
121
+	 */
122
+	public function paginate($perPage = 15, $sortBy = 'created_at', $desc = 1) 
123
+	{
124
+		return \Response::json($this->repo->paginate($perPage, $this->relations, $sortBy, $desc), 200);
125
+	}
126 126
 
127
-    /**
128
-     * Fetch all records with relations based on
129
-     * the given condition from storage in pages.
130
-     * 
131
-     * @param  \Illuminate\Http\Request  $request
132
-     * @param  integer $perPage Number of rows per page default 15.
133
-     * @param  string  $sortBy  The name of the column to sort by.
134
-     * @param  boolean $desc    Sort ascending or descinding (1: desc, 0: asc).
135
-     * @return \Illuminate\Http\Response
136
-     */
137
-    public function paginateby(Request $request, $perPage = 15, $sortBy = 'created_at', $desc = 1) 
138
-    {
139
-        return \Response::json($this->repo->paginateBy($request->all(), $perPage, $this->relations, $sortBy, $desc), 200);
140
-    }
127
+	/**
128
+	 * Fetch all records with relations based on
129
+	 * the given condition from storage in pages.
130
+	 * 
131
+	 * @param  \Illuminate\Http\Request  $request
132
+	 * @param  integer $perPage Number of rows per page default 15.
133
+	 * @param  string  $sortBy  The name of the column to sort by.
134
+	 * @param  boolean $desc    Sort ascending or descinding (1: desc, 0: asc).
135
+	 * @return \Illuminate\Http\Response
136
+	 */
137
+	public function paginateby(Request $request, $perPage = 15, $sortBy = 'created_at', $desc = 1) 
138
+	{
139
+		return \Response::json($this->repo->paginateBy($request->all(), $perPage, $this->relations, $sortBy, $desc), 200);
140
+	}
141 141
 
142
-    /**
143
-     * Save the given model to storage.
144
-     * 
145
-     * @param  \Illuminate\Http\Request  $request
146
-     * @return \Illuminate\Http\Response
147
-     */
148
-    public function save(Request $request) 
149
-    {
150
-        foreach ($this->validationRules as &$rule) 
151
-        {
152
-            if (strpos($rule, 'exists') && ! strpos($rule, 'deleted_at,NULL')) 
153
-            {
154
-                $rule .= ',deleted_at,NULL';
155
-            }
142
+	/**
143
+	 * Save the given model to storage.
144
+	 * 
145
+	 * @param  \Illuminate\Http\Request  $request
146
+	 * @return \Illuminate\Http\Response
147
+	 */
148
+	public function save(Request $request) 
149
+	{
150
+		foreach ($this->validationRules as &$rule) 
151
+		{
152
+			if (strpos($rule, 'exists') && ! strpos($rule, 'deleted_at,NULL')) 
153
+			{
154
+				$rule .= ',deleted_at,NULL';
155
+			}
156 156
 
157
-            if ($request->has('id')) 
158
-            {
159
-                $rule = str_replace('{id}', $request->get('id'), $rule);
160
-            }
161
-            else
162
-            {
163
-                $rule = str_replace(',{id}', '', $rule);
164
-            }
165
-        }
157
+			if ($request->has('id')) 
158
+			{
159
+				$rule = str_replace('{id}', $request->get('id'), $rule);
160
+			}
161
+			else
162
+			{
163
+				$rule = str_replace(',{id}', '', $rule);
164
+			}
165
+		}
166 166
         
167
-        $this->validate($request, $this->validationRules);
167
+		$this->validate($request, $this->validationRules);
168 168
 
169
-        return \Response::json($this->repo->save($request->all()), 200);
170
-    }
169
+		return \Response::json($this->repo->save($request->all()), 200);
170
+	}
171 171
 
172
-    /**
173
-     * Delete by the given id from storage.
174
-     * 
175
-     * @param  integer $id Id of the deleted model.
176
-     * @return \Illuminate\Http\Response
177
-     */
178
-    public function delete($id) 
179
-    {
180
-        return \Response::json($this->repo->delete($id), 200);
181
-    }
172
+	/**
173
+	 * Delete by the given id from storage.
174
+	 * 
175
+	 * @param  integer $id Id of the deleted model.
176
+	 * @return \Illuminate\Http\Response
177
+	 */
178
+	public function delete($id) 
179
+	{
180
+		return \Response::json($this->repo->delete($id), 200);
181
+	}
182 182
 
183
-    /**
184
-     * Return the deleted models in pages based on the given conditions.
185
-     *
186
-     * @param  \Illuminate\Http\Request  $request
187
-     * @param  integer $perPage Number of rows per page default 15.
188
-     * @param  string  $sortBy  The name of the column to sort by.
189
-     * @param  boolean $desc    Sort ascending or descinding (1: desc, 0: asc).
190
-     * @return \Illuminate\Http\Response
191
-     */
192
-    public function deleted(Request $request, $perPage = 15, $sortBy = 'created_at', $desc = 1) 
193
-    {
194
-        return \Response::json($this->repo->deleted($request->all(), $perPage, $sortBy, $desc), 200);
195
-    }
183
+	/**
184
+	 * Return the deleted models in pages based on the given conditions.
185
+	 *
186
+	 * @param  \Illuminate\Http\Request  $request
187
+	 * @param  integer $perPage Number of rows per page default 15.
188
+	 * @param  string  $sortBy  The name of the column to sort by.
189
+	 * @param  boolean $desc    Sort ascending or descinding (1: desc, 0: asc).
190
+	 * @return \Illuminate\Http\Response
191
+	 */
192
+	public function deleted(Request $request, $perPage = 15, $sortBy = 'created_at', $desc = 1) 
193
+	{
194
+		return \Response::json($this->repo->deleted($request->all(), $perPage, $sortBy, $desc), 200);
195
+	}
196 196
 
197
-    /**
198
-     * Restore the deleted model.
199
-     * 
200
-     * @param  integer $id Id of the restored model.
201
-     * @return \Illuminate\Http\Response
202
-     */
203
-    public function restore($id) 
204
-    {
205
-        return \Response::json($this->repo->restore($id), 200);
206
-    }
197
+	/**
198
+	 * Restore the deleted model.
199
+	 * 
200
+	 * @param  integer $id Id of the restored model.
201
+	 * @return \Illuminate\Http\Response
202
+	 */
203
+	public function restore($id) 
204
+	{
205
+		return \Response::json($this->repo->restore($id), 200);
206
+	}
207 207
 
208
-    /**
209
-     * Check if the logged in user can do the given permission.
210
-     * 
211
-     * @param  string $permission
212
-     * @return void
213
-     */
214
-    private function checkPermission($permission)
215
-    {   
216
-        \Auth::shouldUse('api');
217
-        $this->middleware('auth:api', ['except' => $this->skipLoginCheck]);
208
+	/**
209
+	 * Check if the logged in user can do the given permission.
210
+	 * 
211
+	 * @param  string $permission
212
+	 * @return void
213
+	 */
214
+	private function checkPermission($permission)
215
+	{   
216
+		\Auth::shouldUse('api');
217
+		$this->middleware('auth:api', ['except' => $this->skipLoginCheck]);
218 218
         
219
-        if (\Auth::user() && ! in_array($permission, $this->skipLoginCheck))
220
-        {
221
-            $user             = \Auth::user();
222
-            $permission       = $permission !== 'index' ? $permission : 'list';
223
-            $isPasswordClient = $user->token()->client->password_client;
219
+		if (\Auth::user() && ! in_array($permission, $this->skipLoginCheck))
220
+		{
221
+			$user             = \Auth::user();
222
+			$permission       = $permission !== 'index' ? $permission : 'list';
223
+			$isPasswordClient = $user->token()->client->password_client;
224 224
 
225
-            if ($user->blocked)
226
-            {
227
-                \ErrorHandler::userIsBlocked();
228
-            }
225
+			if ($user->blocked)
226
+			{
227
+				\ErrorHandler::userIsBlocked();
228
+			}
229 229
 
230
-            if ($isPasswordClient && (in_array($permission, $this->skipPermissionCheck) || \Core::users()->can($permission, $this->model)))
231
-            {}
232
-            elseif ( ! $isPasswordClient && $user->tokenCan($this->model . '-' . $permission)) 
233
-            {}
234
-            else
235
-            {
230
+			if ($isPasswordClient && (in_array($permission, $this->skipPermissionCheck) || \Core::users()->can($permission, $this->model)))
231
+			{}
232
+			elseif ( ! $isPasswordClient && $user->tokenCan($this->model . '-' . $permission)) 
233
+			{}
234
+			else
235
+			{
236 236
 
237
-                \ErrorHandler::noPermissions();
238
-            }
239
-        }
240
-    }
237
+				\ErrorHandler::noPermissions();
238
+			}
239
+		}
240
+	}
241 241
 
242
-    /**
243
-     * Set sessions based on the given headers in the request.
244
-     * 
245
-     * @return void
246
-     */
247
-    private function setSessions()
248
-    {
249
-        \Session::put('time-zone', \Request::header('time-zone') ?: 0);
242
+	/**
243
+	 * Set sessions based on the given headers in the request.
244
+	 * 
245
+	 * @return void
246
+	 */
247
+	private function setSessions()
248
+	{
249
+		\Session::put('time-zone', \Request::header('time-zone') ?: 0);
250 250
 
251
-        $locale = \Request::header('locale');
252
-        switch ($locale) 
253
-        {
254
-            case 'en':
255
-            \App::setLocale('en');
256
-            \Session::put('locale', 'en');
257
-            break;
251
+		$locale = \Request::header('locale');
252
+		switch ($locale) 
253
+		{
254
+			case 'en':
255
+			\App::setLocale('en');
256
+			\Session::put('locale', 'en');
257
+			break;
258 258
 
259
-            case 'ar':
260
-            \App::setLocale('ar');
261
-            \Session::put('locale', 'ar');
262
-            break;
259
+			case 'ar':
260
+			\App::setLocale('ar');
261
+			\Session::put('locale', 'ar');
262
+			break;
263 263
 
264
-            case 'all':
265
-            \App::setLocale('en');
266
-            \Session::put('locale', 'all');
267
-            break;
264
+			case 'all':
265
+			\App::setLocale('en');
266
+			\Session::put('locale', 'all');
267
+			break;
268 268
 
269
-            default:
270
-            \App::setLocale('en');
271
-            \Session::put('locale', 'en');
272
-            break;
273
-        }
274
-    }
269
+			default:
270
+			\App::setLocale('en');
271
+			\Session::put('locale', 'en');
272
+			break;
273
+		}
274
+	}
275 275
 
276
-    /**
277
-     * Set relation based on the called api.
278
-     * 
279
-     * @param  string $route
280
-     * @return void
281
-     */
282
-    private function setRelations($route)
283
-    {
284
-        $route           = $route !== 'index' ? $route : 'list';
285
-        $relations       = array_key_exists($this->model, $this->config['relations']) ? $this->config['relations'][$this->model] : false;
286
-        $this->relations = $relations && isset($relations[$route]) ? $relations[$route] : [];
287
-    }
276
+	/**
277
+	 * Set relation based on the called api.
278
+	 * 
279
+	 * @param  string $route
280
+	 * @return void
281
+	 */
282
+	private function setRelations($route)
283
+	{
284
+		$route           = $route !== 'index' ? $route : 'list';
285
+		$relations       = array_key_exists($this->model, $this->config['relations']) ? $this->config['relations'][$this->model] : false;
286
+		$this->relations = $relations && isset($relations[$route]) ? $relations[$route] : [];
287
+	}
288 288
 }
Please login to merge, or discard this patch.
src/Modules/Core/Console/Commands/GenerateDoc.php 1 patch
Indentation   +243 added lines, -243 removed lines patch added patch discarded remove patch
@@ -6,275 +6,275 @@
 block discarded – undo
6 6
 
7 7
 class GenerateDoc extends Command
8 8
 {
9
-    /**
10
-     * The name and signature of the console command.
11
-     *
12
-     * @var string
13
-     */
14
-    protected $signature = 'doc:generate';
9
+	/**
10
+	 * The name and signature of the console command.
11
+	 *
12
+	 * @var string
13
+	 */
14
+	protected $signature = 'doc:generate';
15 15
 
16
-    /**
17
-     * The console command description.
18
-     *
19
-     * @var string
20
-     */
21
-    protected $description = 'Generate api documentation';
16
+	/**
17
+	 * The console command description.
18
+	 *
19
+	 * @var string
20
+	 */
21
+	protected $description = 'Generate api documentation';
22 22
 
23
-    /**
24
-     * Create a new command instance.
25
-     *
26
-     * @return void
27
-     */
28
-    public function __construct()
29
-    {
30
-        parent::__construct();
31
-    }
23
+	/**
24
+	 * Create a new command instance.
25
+	 *
26
+	 * @return void
27
+	 */
28
+	public function __construct()
29
+	{
30
+		parent::__construct();
31
+	}
32 32
 
33
-    /**
34
-     * Execute the console command.
35
-     *
36
-     * @return mixed
37
-     */
38
-    public function handle()
39
-    {
40
-        $docData           = [];
41
-        $docData['models'] = [];
42
-        $routes            = $this->getRoutes();
43
-        foreach ($routes as $route) 
44
-        {
45
-            if ($route) 
46
-            {
47
-                $actoinArray = explode('@', $route['action']);
48
-                if(array_get($actoinArray, 1, false))
49
-                {
50
-                    $controller       = $actoinArray[0];
51
-                    $method           = $actoinArray[1];
52
-                    $route['name']    = $method !== 'index' ? $method : 'list';
33
+	/**
34
+	 * Execute the console command.
35
+	 *
36
+	 * @return mixed
37
+	 */
38
+	public function handle()
39
+	{
40
+		$docData           = [];
41
+		$docData['models'] = [];
42
+		$routes            = $this->getRoutes();
43
+		foreach ($routes as $route) 
44
+		{
45
+			if ($route) 
46
+			{
47
+				$actoinArray = explode('@', $route['action']);
48
+				if(array_get($actoinArray, 1, false))
49
+				{
50
+					$controller       = $actoinArray[0];
51
+					$method           = $actoinArray[1];
52
+					$route['name']    = $method !== 'index' ? $method : 'list';
53 53
                     
54
-                    $reflectionClass  = new \ReflectionClass($controller);
55
-                    $reflectionMethod = $reflectionClass->getMethod($method);
56
-                    $classProperties  = $reflectionClass->getDefaultProperties();
57
-                    $skipLoginCheck   = array_key_exists('skipLoginCheck', $classProperties) ? $classProperties['skipLoginCheck'] : false;
58
-                    $validationRules  = array_key_exists('validationRules', $classProperties) ? $classProperties['validationRules'] : false;
54
+					$reflectionClass  = new \ReflectionClass($controller);
55
+					$reflectionMethod = $reflectionClass->getMethod($method);
56
+					$classProperties  = $reflectionClass->getDefaultProperties();
57
+					$skipLoginCheck   = array_key_exists('skipLoginCheck', $classProperties) ? $classProperties['skipLoginCheck'] : false;
58
+					$validationRules  = array_key_exists('validationRules', $classProperties) ? $classProperties['validationRules'] : false;
59 59
 
60
-                    $this->processDocBlock($route, $reflectionMethod);
61
-                    $this->getHeaders($route, $method, $skipLoginCheck);
62
-                    $this->getPostData($route, $reflectionMethod, $validationRules);
60
+					$this->processDocBlock($route, $reflectionMethod);
61
+					$this->getHeaders($route, $method, $skipLoginCheck);
62
+					$this->getPostData($route, $reflectionMethod, $validationRules);
63 63
 
64
-                    $route['response'] = $this->getResponseObject($classProperties['model'], $route['name'], $route['returnDocBlock']);
64
+					$route['response'] = $this->getResponseObject($classProperties['model'], $route['name'], $route['returnDocBlock']);
65 65
 
66
-                    preg_match('/api\/([^#]+)\//iU', $route['uri'], $module);
67
-                    $docData['modules'][$module[1]][substr($route['prefix'], strlen('/api/' . $module[1] . '/') - 1)][] = $route;
66
+					preg_match('/api\/([^#]+)\//iU', $route['uri'], $module);
67
+					$docData['modules'][$module[1]][substr($route['prefix'], strlen('/api/' . $module[1] . '/') - 1)][] = $route;
68 68
 
69
-                    $this->getModels($classProperties['model'], $docData);   
70
-                }
71
-            }
72
-        }
69
+					$this->getModels($classProperties['model'], $docData);   
70
+				}
71
+			}
72
+		}
73 73
         
74
-        $docData['errors'] = $this->getErrors();
75
-        \File::put(app_path('Modules/Core/Resources/api.json'), json_encode($docData));
76
-    }
74
+		$docData['errors'] = $this->getErrors();
75
+		\File::put(app_path('Modules/Core/Resources/api.json'), json_encode($docData));
76
+	}
77 77
 
78
-    /**
79
-     * Get list of all registered routes.
80
-     * 
81
-     * @return collection
82
-     */
83
-    protected function getRoutes()
84
-    {
85
-        return collect(\Route::getRoutes())->map(function ($route) {
86
-            if (strpos($route->uri(), 'api') !== false) 
87
-            {
88
-                return [
89
-                    'method' => $route->methods()[0],
90
-                    'uri'    => $route->uri(),
91
-                    'action' => $route->getActionName(),
92
-                    'prefix' => $route->getPrefix()
93
-                ];
94
-            }
95
-            return false;
96
-        })->all();
97
-    }
78
+	/**
79
+	 * Get list of all registered routes.
80
+	 * 
81
+	 * @return collection
82
+	 */
83
+	protected function getRoutes()
84
+	{
85
+		return collect(\Route::getRoutes())->map(function ($route) {
86
+			if (strpos($route->uri(), 'api') !== false) 
87
+			{
88
+				return [
89
+					'method' => $route->methods()[0],
90
+					'uri'    => $route->uri(),
91
+					'action' => $route->getActionName(),
92
+					'prefix' => $route->getPrefix()
93
+				];
94
+			}
95
+			return false;
96
+		})->all();
97
+	}
98 98
 
99
-    /**
100
-     * Generate headers for the given route.
101
-     * 
102
-     * @param  array  &$route
103
-     * @param  string $method
104
-     * @param  array  $skipLoginCheck
105
-     * @return void
106
-     */
107
-    protected function getHeaders(&$route, $method, $skipLoginCheck)
108
-    {
109
-        $route['headers'] = [
110
-        'Accept'       => 'application/json',
111
-        'Content-Type' => 'application/json',
112
-        'locale'       => 'The language of the returned data: ar, en or all.',
113
-        'time-zone'    => 'Your locale time zone',
114
-        ];
99
+	/**
100
+	 * Generate headers for the given route.
101
+	 * 
102
+	 * @param  array  &$route
103
+	 * @param  string $method
104
+	 * @param  array  $skipLoginCheck
105
+	 * @return void
106
+	 */
107
+	protected function getHeaders(&$route, $method, $skipLoginCheck)
108
+	{
109
+		$route['headers'] = [
110
+		'Accept'       => 'application/json',
111
+		'Content-Type' => 'application/json',
112
+		'locale'       => 'The language of the returned data: ar, en or all.',
113
+		'time-zone'    => 'Your locale time zone',
114
+		];
115 115
 
116 116
 
117
-        if (! $skipLoginCheck || ! in_array($method, $skipLoginCheck)) 
118
-        {
119
-            $route['headers']['Authorization'] = 'Bearer {token}';
120
-        }
121
-    }
117
+		if (! $skipLoginCheck || ! in_array($method, $skipLoginCheck)) 
118
+		{
119
+			$route['headers']['Authorization'] = 'Bearer {token}';
120
+		}
121
+	}
122 122
 
123
-    /**
124
-     * Generate description and params for the given route
125
-     * based on the docblock.
126
-     * 
127
-     * @param  array  &$route
128
-     * @param  object $reflectionMethod]
129
-     * @return void
130
-     */
131
-    protected function processDocBlock(&$route, $reflectionMethod)
132
-    {
133
-        $factory                 = \phpDocumentor\Reflection\DocBlockFactory::createInstance();
134
-        $docblock                = $factory->create($reflectionMethod->getDocComment());
135
-        $route['description']    = trim(preg_replace('/\s+/', ' ', $docblock->getSummary()));
136
-        $params                  = $docblock->getTagsByName('param');
137
-        $route['returnDocBlock'] = $docblock->getTagsByName('return')[0]->getType()->getFqsen()->getName();
138
-        foreach ($params as $param) 
139
-        {
140
-            $name = $param->getVariableName();
141
-            if ($name !== 'request') 
142
-            {
143
-                $route['parametars'][$param->getVariableName()] = $param->getDescription()->render();
144
-            }
145
-        }
146
-    }
123
+	/**
124
+	 * Generate description and params for the given route
125
+	 * based on the docblock.
126
+	 * 
127
+	 * @param  array  &$route
128
+	 * @param  object $reflectionMethod]
129
+	 * @return void
130
+	 */
131
+	protected function processDocBlock(&$route, $reflectionMethod)
132
+	{
133
+		$factory                 = \phpDocumentor\Reflection\DocBlockFactory::createInstance();
134
+		$docblock                = $factory->create($reflectionMethod->getDocComment());
135
+		$route['description']    = trim(preg_replace('/\s+/', ' ', $docblock->getSummary()));
136
+		$params                  = $docblock->getTagsByName('param');
137
+		$route['returnDocBlock'] = $docblock->getTagsByName('return')[0]->getType()->getFqsen()->getName();
138
+		foreach ($params as $param) 
139
+		{
140
+			$name = $param->getVariableName();
141
+			if ($name !== 'request') 
142
+			{
143
+				$route['parametars'][$param->getVariableName()] = $param->getDescription()->render();
144
+			}
145
+		}
146
+	}
147 147
 
148
-    /**
149
-     * Generate post body for the given route.
150
-     * 
151
-     * @param  array  &$route
152
-     * @param  object $reflectionMethod
153
-     * @param  array  $validationRules
154
-     * @return void
155
-     */
156
-    protected function getPostData(&$route, $reflectionMethod, $validationRules)
157
-    {
158
-        if ($route['method'] == 'POST') 
159
-        {
160
-            $body = $this->getMethodBody($reflectionMethod);
148
+	/**
149
+	 * Generate post body for the given route.
150
+	 * 
151
+	 * @param  array  &$route
152
+	 * @param  object $reflectionMethod
153
+	 * @param  array  $validationRules
154
+	 * @return void
155
+	 */
156
+	protected function getPostData(&$route, $reflectionMethod, $validationRules)
157
+	{
158
+		if ($route['method'] == 'POST') 
159
+		{
160
+			$body = $this->getMethodBody($reflectionMethod);
161 161
 
162
-            preg_match('/\$this->validate\(\$request,([^#]+)\);/iU', $body, $match);
163
-            if (count($match)) 
164
-            {
165
-                if ($match[1] == '$this->validationRules')
166
-                {
167
-                    $route['body'] = $validationRules;
168
-                }
169
-                else
170
-                {
171
-                    $route['body'] = eval('return ' . str_replace(',\'.$request->get(\'id\')', ',{id}\'', $match[1]) . ';');
172
-                }
162
+			preg_match('/\$this->validate\(\$request,([^#]+)\);/iU', $body, $match);
163
+			if (count($match)) 
164
+			{
165
+				if ($match[1] == '$this->validationRules')
166
+				{
167
+					$route['body'] = $validationRules;
168
+				}
169
+				else
170
+				{
171
+					$route['body'] = eval('return ' . str_replace(',\'.$request->get(\'id\')', ',{id}\'', $match[1]) . ';');
172
+				}
173 173
 
174
-                foreach ($route['body'] as &$rule) 
175
-                {
176
-                    if(strpos($rule, 'unique'))
177
-                    {
178
-                        $rule = substr($rule, 0, strpos($rule, 'unique') + 6);
179
-                    }
180
-                    elseif(strpos($rule, 'exists'))
181
-                    {
182
-                        $rule = substr($rule, 0, strpos($rule, 'exists') - 1);
183
-                    }
184
-                }
185
-            }
186
-            else
187
-            {
188
-                $route['body'] = 'conditions';
189
-            }
190
-        }
191
-    }
174
+				foreach ($route['body'] as &$rule) 
175
+				{
176
+					if(strpos($rule, 'unique'))
177
+					{
178
+						$rule = substr($rule, 0, strpos($rule, 'unique') + 6);
179
+					}
180
+					elseif(strpos($rule, 'exists'))
181
+					{
182
+						$rule = substr($rule, 0, strpos($rule, 'exists') - 1);
183
+					}
184
+				}
185
+			}
186
+			else
187
+			{
188
+				$route['body'] = 'conditions';
189
+			}
190
+		}
191
+	}
192 192
 
193
-    /**
194
-     * Generate application errors.
195
-     * 
196
-     * @return array
197
-     */
198
-    protected function getErrors()
199
-    {
200
-        $errors          = [];
201
-        $reflectionClass = new \ReflectionClass('App\Modules\Core\Utl\ErrorHandler');
202
-        foreach ($reflectionClass->getMethods() as $method) 
203
-        {
204
-            $methodName       = $method->getName();
205
-            $reflectionMethod = $reflectionClass->getMethod($methodName);
206
-            $body             = $this->getMethodBody($reflectionMethod);
193
+	/**
194
+	 * Generate application errors.
195
+	 * 
196
+	 * @return array
197
+	 */
198
+	protected function getErrors()
199
+	{
200
+		$errors          = [];
201
+		$reflectionClass = new \ReflectionClass('App\Modules\Core\Utl\ErrorHandler');
202
+		foreach ($reflectionClass->getMethods() as $method) 
203
+		{
204
+			$methodName       = $method->getName();
205
+			$reflectionMethod = $reflectionClass->getMethod($methodName);
206
+			$body             = $this->getMethodBody($reflectionMethod);
207 207
 
208
-            preg_match('/\$error=\[\'status\'=>([^#]+)\,/iU', $body, $match);
208
+			preg_match('/\$error=\[\'status\'=>([^#]+)\,/iU', $body, $match);
209 209
 
210
-            if (count($match)) 
211
-            {
212
-                $errors[$match[1]][] = $methodName;
213
-            }
214
-        }
210
+			if (count($match)) 
211
+			{
212
+				$errors[$match[1]][] = $methodName;
213
+			}
214
+		}
215 215
 
216
-        return $errors;
217
-    }
216
+		return $errors;
217
+	}
218 218
 
219
-    /**
220
-     * Get the given method body code.
221
-     * 
222
-     * @param  object $reflectionMethod
223
-     * @return string
224
-     */
225
-    protected function getMethodBody($reflectionMethod)
226
-    {
227
-        $filename   = $reflectionMethod->getFileName();
228
-        $start_line = $reflectionMethod->getStartLine() - 1;
229
-        $end_line   = $reflectionMethod->getEndLine();
230
-        $length     = $end_line - $start_line;         
231
-        $source     = file($filename);
232
-        $body       = implode("", array_slice($source, $start_line, $length));
233
-        $body       = trim(preg_replace('/\s+/', '', $body));
219
+	/**
220
+	 * Get the given method body code.
221
+	 * 
222
+	 * @param  object $reflectionMethod
223
+	 * @return string
224
+	 */
225
+	protected function getMethodBody($reflectionMethod)
226
+	{
227
+		$filename   = $reflectionMethod->getFileName();
228
+		$start_line = $reflectionMethod->getStartLine() - 1;
229
+		$end_line   = $reflectionMethod->getEndLine();
230
+		$length     = $end_line - $start_line;         
231
+		$source     = file($filename);
232
+		$body       = implode("", array_slice($source, $start_line, $length));
233
+		$body       = trim(preg_replace('/\s+/', '', $body));
234 234
 
235
-        return $body;
236
-    }
235
+		return $body;
236
+	}
237 237
 
238
-    /**
239
-     * Get example object of all availble models.
240
-     * 
241
-     * @param  string $modelName
242
-     * @param  array  $docData
243
-     * @return string
244
-     */
245
-    protected function getModels($modelName, &$docData)
246
-    {
247
-        if ($modelName && ! array_key_exists($modelName, $docData['models'])) 
248
-        {
249
-            $modelClass = call_user_func_array("\Core::{$modelName}", [])->modelClass;
250
-            $model      = factory($modelClass)->make();
251
-            $modelArr   = $model->toArray();
238
+	/**
239
+	 * Get example object of all availble models.
240
+	 * 
241
+	 * @param  string $modelName
242
+	 * @param  array  $docData
243
+	 * @return string
244
+	 */
245
+	protected function getModels($modelName, &$docData)
246
+	{
247
+		if ($modelName && ! array_key_exists($modelName, $docData['models'])) 
248
+		{
249
+			$modelClass = call_user_func_array("\Core::{$modelName}", [])->modelClass;
250
+			$model      = factory($modelClass)->make();
251
+			$modelArr   = $model->toArray();
252 252
 
253
-            if ( $model->trans && ! $model->trans->count()) 
254
-            {
255
-                $modelArr['trans'] = [
256
-                    'en' => factory($modelClass . 'Translation')->make()->toArray()
257
-                ];
258
-            }
253
+			if ( $model->trans && ! $model->trans->count()) 
254
+			{
255
+				$modelArr['trans'] = [
256
+					'en' => factory($modelClass . 'Translation')->make()->toArray()
257
+				];
258
+			}
259 259
 
260
-            $docData['models'][$modelName] = json_encode($modelArr, JSON_PRETTY_PRINT);
261
-        }
262
-    }
260
+			$docData['models'][$modelName] = json_encode($modelArr, JSON_PRETTY_PRINT);
261
+		}
262
+	}
263 263
 
264
-    /**
265
-     * Get the route response object type.
266
-     * 
267
-     * @param  string $modelName
268
-     * @param  string $method
269
-     * @param  string $returnDocBlock
270
-     * @return array
271
-     */
272
-    protected function getResponseObject($modelName, $method, $returnDocBlock)
273
-    {
274
-        $config    = \CoreConfig::getConfig();
275
-        $relations = array_key_exists($modelName, $config['relations']) ? array_key_exists($method, $config['relations'][$modelName]) ? $config['relations'][$modelName] : false : false;
276
-        $modelName = call_user_func_array("\Core::{$returnDocBlock}", []) ? $returnDocBlock : $modelName;
264
+	/**
265
+	 * Get the route response object type.
266
+	 * 
267
+	 * @param  string $modelName
268
+	 * @param  string $method
269
+	 * @param  string $returnDocBlock
270
+	 * @return array
271
+	 */
272
+	protected function getResponseObject($modelName, $method, $returnDocBlock)
273
+	{
274
+		$config    = \CoreConfig::getConfig();
275
+		$relations = array_key_exists($modelName, $config['relations']) ? array_key_exists($method, $config['relations'][$modelName]) ? $config['relations'][$modelName] : false : false;
276
+		$modelName = call_user_func_array("\Core::{$returnDocBlock}", []) ? $returnDocBlock : $modelName;
277 277
 
278
-        return $relations ? [$modelName => $relations && $relations[$method] ? $relations[$method] : []] : false;
279
-    }
278
+		return $relations ? [$modelName => $relations && $relations[$method] ? $relations[$method] : []] : false;
279
+	}
280 280
 }
Please login to merge, or discard this patch.