Skip to content

Commit 5aee8b9

Browse files
authored
Merge pull request #12 from Lomkit/feature/changes-and-fixes
♻️ 🐛 fixes and changes suggested
2 parents 5ddcda4 + 1f90bc4 commit 5aee8b9

33 files changed

+78
-71
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Laravel Rest Api is an elegant way to expose your app through an API, it takes f
66

77
## Requirements
88

9-
PHP 7.3+ and Laravel 8.0+
9+
PHP 8.0+ and Laravel 8.0+
1010

1111
# BETA
1212
Please note that this package is under beta and is not recommended to use for production environment for now. End of beta should be by October 2023.
@@ -69,7 +69,7 @@ Here is a quick look at what you can do using API search method:
6969
"type": "max",
7070
"field": "rate",
7171
"filters": [
72-
{"field": "approved', "value": true}
72+
{"field": "approved", "value": true}
7373
]
7474
},
7575
],

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
}
1111
],
1212
"require": {
13-
"php": "^7.3|^8.0",
13+
"php": "^8.0",
1414
"ext-json": "*",
1515
"illuminate/contracts": "^8.37|^9.0|^10.0",
1616
"illuminate/http": "^8.37|^9.0|^10.0",

src/Concerns/Resource/ConfiguresRestParameters.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
trait ConfiguresRestParameters
1111
{
12-
public function exposedFields(RestRequest $request) {
12+
public function exposedFields(RestRequest $request): array {
1313
return [];
1414
}
1515

@@ -47,11 +47,11 @@ function ($exposedField) use ($prefix) {
4747
return $exposedFields;
4848
}
4949

50-
public function exposedScopes(RestRequest $request) {
50+
public function exposedScopes(RestRequest $request): array {
5151
return [];
5252
}
5353

54-
public function exposedLimits(RestRequest $request) {
54+
public function exposedLimits(RestRequest $request): array {
5555
return [
5656
10,
5757
25,

src/Concerns/Resource/Relationable.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public function nestedRelations(RestRequest $request, string $prefix = '', array
5353
return $relations;
5454
}
5555

56-
public function relations(RestRequest $request) {
56+
public function relations(RestRequest $request): array {
5757
return [];
5858
}
5959

src/Console/Commands/ControllerCommand.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Support\Composer;
99
use Illuminate\Support\Str;
1010
use Lomkit\Rest\Console\ResolvesStubPath;
11+
use Lomkit\Rest\Tests\Support\Rest\Resources\ModelResource;
1112

1213
class ControllerCommand extends GeneratorCommand implements PromptsForMissingInput
1314
{
@@ -58,7 +59,7 @@ protected function buildClass($name)
5859
$resourceNamespace = $this->getResourceNamespace();
5960

6061
if (is_null($resource)) {
61-
$resource = $resourceNamespace.str_replace('/', '\\', $this->argument('name'));
62+
$resource = $resourceNamespace.'ModelResource';
6263
} elseif (! Str::startsWith($resource, [
6364
$resourceNamespace, '\\',
6465
])) {

src/Console/Commands/QuickStartCommand.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public function handle()
3333
{
3434
$this->comment('Generating User Resource...');
3535
$this->callSilent('rest:resource', ['name' => 'UserResource']);
36-
copy($this->resolveStubPath('../stubs/user-resource.stub'), app_path('Rest/Resources/UserResource.php'));
36+
copy($this->resolveStubPath('/stubs/user-resource.stub'), app_path('Rest/Resources/UserResource.php'));
3737

3838
if (file_exists(app_path('Models/User.php'))) {
3939
file_put_contents(
@@ -44,7 +44,7 @@ public function handle()
4444

4545
$this->comment('Generating User Controller...');
4646
$this->callSilent('rest:controller', ['name' => 'UsersController']);
47-
copy($this->resolveStubPath('../stubs/user-controller.stub'), app_path('Http/Controllers/UsersController.php'));
47+
copy($this->resolveStubPath('/stubs/user-controller.stub'), app_path('Http/Controllers/UsersController.php'));
4848

4949
if (file_exists(app_path('Models/User.php'))) {
5050
file_put_contents(
@@ -75,7 +75,7 @@ protected function setAppNamespace()
7575
{
7676
$namespace = $this->laravel->getNamespace();
7777

78-
$this->setAppNamespaceOn(app_path('Rest/Resource/UserResource.php'), $namespace);
78+
$this->setAppNamespaceOn(app_path('Rest/Resources/UserResource.php'), $namespace);
7979
$this->setAppNamespaceOn(app_path('Http/Controllers/UsersController.php'), $namespace);
8080
}
8181

src/Console/Commands/ResourceCommand.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public function handle()
5353
*/
5454
protected function buildClass($name)
5555
{
56-
$model = $this->option('model');
56+
$model = $this->option('model') ?? 'App\\Models\\Model';
5757

5858
$modelNamespace = $this->getModelNamespace();
5959

src/Console/stubs/base-resource.stub

+12-12
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@ abstract class Resource extends RestResource
1010
* Build a query for fetching resource.
1111
*
1212
* @param \Lomkit\Rest\Http\Requests\RestRequest $request
13-
* @param \Illuminate\Database\Eloquent\Builder $query
14-
* @return \Illuminate\Database\Eloquent\Builder
13+
* @param \Illuminate\Contracts\Database\Eloquent\Builder $query
14+
* @return \Illuminate\Contracts\Database\Eloquent\Builder
1515
*/
16-
public function fetchQuery(\Lomkit\Rest\Http\Requests\RestRequest $request, \Illuminate\Database\Eloquent\Builder $query) {
16+
public function fetchQuery(\Lomkit\Rest\Http\Requests\RestRequest $request, \Illuminate\Contracts\Database\Eloquent\Builder $query) {
1717
return $query;
1818
}
1919

2020
/**
2121
* Build a "destroy" query for the given resource.
2222
*
2323
* @param \Lomkit\Rest\Http\Requests\RestRequest $request
24-
* @param \Illuminate\Database\Eloquent\Builder $query
25-
* @return \Illuminate\Database\Eloquent\Builder
24+
* @param \Illuminate\Contracts\Database\Eloquent\Builder $query
25+
* @return \Illuminate\Contracts\Database\Eloquent\Builder
2626
*/
27-
public function destroyQuery(\Lomkit\Rest\Http\Requests\RestRequest $request, \Illuminate\Database\Eloquent\Builder $query)
27+
public function destroyQuery(\Lomkit\Rest\Http\Requests\RestRequest $request, \Illuminate\Contracts\Database\Eloquent\Builder $query)
2828
{
2929
return $query;
3030
}
@@ -33,10 +33,10 @@ abstract class Resource extends RestResource
3333
* Build a "restore" query for the given resource.
3434
*
3535
* @param \Lomkit\Rest\Http\Requests\RestRequest $request
36-
* @param \Illuminate\Database\Eloquent\Builder $query
37-
* @return \Illuminate\Database\Eloquent\Builder
36+
* @param \Illuminate\Contracts\Database\Eloquent\Builder $query
37+
* @return \Illuminate\Contracts\Database\Eloquent\Builder
3838
*/
39-
public function restoreQuery(\Lomkit\Rest\Http\Requests\RestRequest $request, \Illuminate\Database\Eloquent\Builder $query)
39+
public function restoreQuery(\Lomkit\Rest\Http\Requests\RestRequest $request, \Illuminate\Contracts\Database\Eloquent\Builder $query)
4040
{
4141
return $query;
4242
}
@@ -45,10 +45,10 @@ abstract class Resource extends RestResource
4545
* Build a "forceDelete" query for the given resource.
4646
*
4747
* @param \Lomkit\Rest\Http\Requests\RestRequest $request
48-
* @param \Illuminate\Database\Eloquent\Builder $query
49-
* @return \Illuminate\Database\Eloquent\Builder
48+
* @param \Illuminate\Contracts\Database\Eloquent\Builder $query
49+
* @return \Illuminate\Contracts\Database\Eloquent\Builder
5050
*/
51-
public function forceDeleteQuery(\Lomkit\Rest\Http\Requests\RestRequest $request, \Illuminate\Database\Eloquent\Builder $query)
51+
public function forceDeleteQuery(\Lomkit\Rest\Http\Requests\RestRequest $request, \Illuminate\Contracts\Database\Eloquent\Builder $query)
5252
{
5353
return $query;
5454
}

src/Console/stubs/resource.stub

+7-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace {{ namespace }};
44

55
use App\Rest\Resource as RestResource;
66

7-
class {{ class }} extends Resource
7+
class {{ class }} extends RestResource
88
{
99
/**
1010
* The model the resource corresponds to.
@@ -13,23 +13,25 @@ class {{ class }} extends Resource
1313
*/
1414
public static $model = \{{ namespacedModel }}::class;
1515

16-
public function exposedFields(\Lomkit\Rest\Http\Requests\RestRequest $request)
16+
public function exposedFields(\Lomkit\Rest\Http\Requests\RestRequest $request): array
1717
{
1818
return [
1919
'id'
2020
];
2121
}
2222

23-
public function relations(\Lomkit\Rest\Http\Requests\RestRequest $request)
23+
public function relations(\Lomkit\Rest\Http\Requests\RestRequest $request): array
2424
{
2525
return [];
2626
}
2727

28-
public function exposedScopes(\Lomkit\Rest\Http\Requests\RestRequest $request) {
28+
public function exposedScopes(\Lomkit\Rest\Http\Requests\RestRequest $request): array
29+
{
2930
return [];
3031
}
3132

32-
public function exposedLimits(\Lomkit\Rest\Http\Requests\RestRequest $request) {
33+
public function exposedLimits(\Lomkit\Rest\Http\Requests\RestRequest $request): array
34+
{
3335
return [
3436
10,
3537
25,

src/Console/stubs/user-controller.stub

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ class UsersController extends RestController
1111
*
1212
* @var class-string<\Lomkit\Rest\Http\Resource>
1313
*/
14-
public static $resource = \App\User::class;
14+
public static $resource = \App\Rest\Resources\UserResource::class;
1515
}

src/Console/stubs/user-resource.stub

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace App\Rest\Resources;
44

55
use App\Rest\Resource as RestResource;
66

7-
class User extends Resource
7+
class User extends RestResource
88
{
99
/**
1010
* The model the resource corresponds to.

src/Contracts/Http/Routing/Registrar.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace Lomkit\Rest\Contracts\Http\Routing;
44

5+
use Lomkit\Rest\Http\Controllers\Controller;
6+
57
interface Registrar
68
{
79
/**
@@ -12,5 +14,5 @@ interface Registrar
1214
* @param array $options
1315
* @return Lomkit\Rest\Http\Routing\PendingResourceRegistration
1416
*/
15-
public function resource($name, $controller, array $options = []);
17+
public function resource(string $name, string $controller, array $options = []);
1618
}

src/Facades/Rest.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
class Rest extends Facade
88
{
99
/**
10-
* @inheritDoc
10+
* @method static \Lomkit\Rest\Http\Routing\PendingResourceRegistration resource(string $name, $controller, array $options = [])
11+
*
12+
* @see \Lomkit\Rest\Rest
1113
*/
1214
protected static function getFacadeAccessor()
1315
{

src/Http/Resource.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public static function newResponse()
6262
return new $response;
6363
}
6464

65-
public function defaultOrderBy(RestRequest $request) {
65+
public function defaultOrderBy(RestRequest $request): array {
6666
return [
6767
'id' => 'desc'
6868
];

src/Rest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class Rest implements Registrar
1717
* @param array $options
1818
* @return \Lomkit\Rest\Http\Routing\PendingResourceRegistration
1919
*/
20-
public function resource($name, $controller, array $options = [])
20+
public function resource(string $name, string $controller, array $options = [])
2121
{
2222
if (app()->bound(ResourceRegistrar::class)) {
2323
$registrar = app()->make(ResourceRegistrar::class);

tests/Support/Rest/Resources/AutomaticGatingResource.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class AutomaticGatingResource extends Resource
2525

2626
public static $model = Model::class;
2727

28-
public function relations(RestRequest $request)
28+
public function relations(RestRequest $request): array
2929
{
3030
return [
3131
BelongsToMany::make('belongsToManyRelation', BelongsToManyResource::class)
@@ -36,7 +36,7 @@ public function relations(RestRequest $request)
3636
];
3737
}
3838

39-
public function exposedFields(RestRequest $request)
39+
public function exposedFields(RestRequest $request): array
4040
{
4141
return [
4242
'id',

tests/Support/Rest/Resources/BelongsToManyResource.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ class BelongsToManyResource extends Resource
1313

1414
public static $model = BelongsToManyRelation::class;
1515

16-
public function relations(RestRequest $request)
16+
public function relations(RestRequest $request): array
1717
{
1818
return [];
1919
}
2020

21-
public function exposedFields(RestRequest $request)
21+
public function exposedFields(RestRequest $request): array
2222
{
2323
return [
2424
'id',

tests/Support/Rest/Resources/BelongsToResource.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ class BelongsToResource extends Resource
1515

1616
public static $model = BelongsToRelation::class;
1717

18-
public function relations(RestRequest $request)
18+
public function relations(RestRequest $request): array
1919
{
2020
return [
2121
HasMany::make('models', ModelResource::class)
2222
];
2323
}
2424

25-
public function exposedFields(RestRequest $request)
25+
public function exposedFields(RestRequest $request): array
2626
{
2727
return [
2828
'id',

tests/Support/Rest/Resources/HasManyResource.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ class HasManyResource extends Resource
1313
use DisableAutomaticGates;
1414
public static $model = HasManyRelation::class;
1515

16-
public function relations(RestRequest $request)
16+
public function relations(RestRequest $request): array
1717
{
1818
return [];
1919
}
2020

21-
public function exposedFields(RestRequest $request)
21+
public function exposedFields(RestRequest $request): array
2222
{
2323
return [
2424
'id',

tests/Support/Rest/Resources/HasManyThroughResource.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ class HasManyThroughResource extends Resource
1515
use DisableAutomaticGates;
1616
public static $model = HasManyThroughRelation::class;
1717

18-
public function relations(RestRequest $request)
18+
public function relations(RestRequest $request): array
1919
{
2020
return [];
2121
}
2222

23-
public function exposedFields(RestRequest $request)
23+
public function exposedFields(RestRequest $request): array
2424
{
2525
return [
2626
'id',

tests/Support/Rest/Resources/HasOneOfManyResource.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ class HasOneOfManyResource extends Resource
1515

1616
public static $model = HasOneOfManyRelation::class;
1717

18-
public function relations(RestRequest $request)
18+
public function relations(RestRequest $request): array
1919
{
2020
return [];
2121
}
2222

23-
public function exposedFields(RestRequest $request)
23+
public function exposedFields(RestRequest $request): array
2424
{
2525
return [
2626
'id',

tests/Support/Rest/Resources/HasOneResource.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ class HasOneResource extends Resource
1313

1414
public static $model = HasOneRelation::class;
1515

16-
public function relations(RestRequest $request)
16+
public function relations(RestRequest $request): array
1717
{
1818
return [];
1919
}
2020

21-
public function exposedFields(RestRequest $request)
21+
public function exposedFields(RestRequest $request): array
2222
{
2323
return [
2424
'id',

tests/Support/Rest/Resources/HasOneThroughResource.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ class HasOneThroughResource extends Resource
1515

1616
public static $model = HasOneThroughRelation::class;
1717

18-
public function relations(RestRequest $request)
18+
public function relations(RestRequest $request): array
1919
{
2020
return [];
2121
}
2222

23-
public function exposedFields(RestRequest $request)
23+
public function exposedFields(RestRequest $request): array
2424
{
2525
return [
2626
'id',

0 commit comments

Comments
 (0)