33namespace PrettyRoutes \Http ;
44
55use Helldar \LaravelRoutesCore \Support \Routes ;
6+ use Illuminate \Contracts \View \View ;
7+ use Illuminate \Http \JsonResponse ;
68use Illuminate \Routing \Controller as BaseController ;
7- use Illuminate \Support \Facades \Artisan ;
9+ use PrettyRoutes \Facades \Cache ;
10+ use PrettyRoutes \Support \Config ;
811
912class PrettyRoutesController extends BaseController
1013{
@@ -13,7 +16,7 @@ class PrettyRoutesController extends BaseController
1316 *
1417 * @return \Illuminate\Contracts\View\View
1518 */
16- public function show ()
19+ public function show (): View
1720 {
1821 return view ('pretty-routes::layout ' );
1922 }
@@ -22,37 +25,33 @@ public function show()
2225 * Getting a list of routes.
2326 *
2427 * @param \Helldar\LaravelRoutesCore\Support\Routes $routes
28+ * @param \PrettyRoutes\Support\Config $config
2529 *
2630 * @return \Illuminate\Http\JsonResponse
2731 */
28- public function routes (Routes $ routes)
32+ public function routes (Routes $ routes, Config $ config ): JsonResponse
2933 {
30- $ content = $ routes
31- ->setApiMiddlewares ((array ) config ('pretty-routes.api_middleware ' ))
32- ->setWebMiddlewares ((array ) config ('pretty-routes.web_middleware ' ))
33- ->setHideMethods (config ('pretty-routes.hide_methods ' , []))
34- ->setHideMatching (config ('pretty-routes.hide_matching ' , []))
35- ->setDomainForce (config ('pretty-routes.domain_force ' , false ))
36- ->setUrl (config ('app.url ' ))
37- ->setNamespace (config ('modules.namespace ' ))
38- ->get ();
34+ $ routes ->setFromConfig ($ config );
3935
40- return response ()->json ($ content );
36+ return response ()->json (
37+ $ routes ->get ()
38+ );
4139 }
4240
4341 /**
4442 * Clearing cached routes.
4543 *
4644 * @return \Illuminate\Http\JsonResponse
4745 */
48- public function clear ()
46+ public function clear (): JsonResponse
4947 {
50- if (config ('app.env ' ) !== 'production ' && (bool ) config ('app.debug ' ) === true ) {
51- Artisan::call ('route:clear ' );
52-
53- return response ()->json ('ok ' );
54- }
48+ return Cache::when ($ this ->allow ())->routeClear ()
49+ ? response ()->json ('ok ' )
50+ : response ()->json ('disabled ' , 400 );
51+ }
5552
56- return response ()->json ('disabled ' , 400 );
53+ protected function allow (): bool
54+ {
55+ return config ('app.env ' ) !== 'production ' && (bool ) config ('app.debug ' ) === true ;
5756 }
5857}
0 commit comments