@@ -23,13 +23,17 @@ public function output(array $tree): array
23
23
}
24
24
25
25
$ routes = '' ;
26
+ $ path = 'routes/web.php ' ;
26
27
/** @var \Blueprint\Models\Controller $controller */
27
28
foreach ($ tree ['controllers ' ] as $ controller ) {
28
29
$ routes .= PHP_EOL . PHP_EOL . $ this ->buildRoutes ($ controller );
30
+
31
+ if ($ controller ->isApiResource ()) {
32
+ $ path = 'routes/api.php ' ;
33
+ }
29
34
}
30
35
$ routes .= PHP_EOL ;
31
36
32
- $ path = 'routes/web.php ' ;
33
37
$ this ->files ->append ($ path , $ routes );
34
38
35
39
return ['updated ' => [$ path ]];
@@ -45,9 +49,14 @@ protected function buildRoutes(Controller $controller)
45
49
46
50
$ resource_methods = array_intersect ($ methods , Controller::$ resourceMethods );
47
51
if (count ($ resource_methods )) {
48
- $ routes .= sprintf ("Route::resource('%s', '%s') " , $ slug , $ className );
52
+ $ routes .= $ controller ->isApiResource ()
53
+ ? sprintf ("Route::apiResource('%s', '%s') " , $ slug , $ className )
54
+ : sprintf ("Route::resource('%s', '%s') " , $ slug , $ className );
55
+
56
+ $ missing_methods = $ controller ->isApiResource ()
57
+ ? array_diff (Controller::$ apiResourceMethods , $ resource_methods )
58
+ : array_diff (Controller::$ resourceMethods , $ resource_methods );
49
59
50
- $ missing_methods = array_diff (Controller::$ resourceMethods , $ resource_methods );
51
60
if (count ($ missing_methods )) {
52
61
if (count ($ missing_methods ) < 4 ) {
53
62
$ routes .= sprintf ("->except('%s') " , implode ("', ' " , $ missing_methods ));
@@ -56,7 +65,6 @@ protected function buildRoutes(Controller $controller)
56
65
}
57
66
}
58
67
59
-
60
68
$ routes .= '; ' . PHP_EOL ;
61
69
}
62
70
0 commit comments