Skip to content

Commit 238d671

Browse files
authored
Merge pull request #117 from marcogermani87/4.0.0
Migration to Filament v4
2 parents a7098bc + e5e297c commit 238d671

25 files changed

+195
-167
lines changed

.github/workflows/run-tests.yml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,16 @@ jobs:
1313
fail-fast: true
1414
matrix:
1515
os: [ubuntu-latest, windows-latest]
16-
php: [8.2, 8.1]
17-
laravel: [10.*, 11.*]
18-
stability: [prefer-lowest, prefer-stable]
16+
php: [8.2, 8.3, 8.4]
17+
laravel: [11.*, 12.*]
18+
stability: [prefer-stable]
1919
include:
20-
- laravel: 10.*
21-
testbench: 8.*
22-
carbon: ^2.63
2320
- laravel: 11.*
2421
testbench: 9.*
25-
carbon: ^3.0
26-
exclude:
27-
- laravel: 11.*
28-
php: 8.1
22+
carbon: 3.*
23+
- laravel: 12.*
24+
testbench: 10.*
25+
carbon: 3.*
2926

3027
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
3128

composer.json

Lines changed: 82 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,85 @@
11
{
2-
"name": "rupadana/filament-api-service",
3-
"description": "A simple api service for supporting filamentphp",
4-
"keywords": [
5-
"rupadana",
6-
"laravel",
7-
"api-service",
8-
"api",
9-
"filament",
10-
"filament api"
11-
],
12-
"homepage": "https://github.com/rupadana/api-service",
13-
"support": {
14-
"issues": "https://github.com/rupadana/api-service/issues",
15-
"source": "https://github.com/rupadana/api-service"
16-
},
17-
"license": "MIT",
18-
"authors": [
19-
{
20-
"name": "Rupadana",
21-
"email": "rupadanawayan@gmail.com",
22-
"role": "Developer"
23-
}
24-
],
25-
"require": {
26-
"php": "^8.1",
27-
"dedoc/scramble": "^0.12.10",
28-
"filament/filament": "^3.2",
29-
"illuminate/contracts": "^10.0|^11.0|^12.0",
30-
"laravel/framework": "^10.10|^11.0|^12.0",
31-
"laravel/sanctum": "^3.2|^4.0",
32-
"spatie/laravel-package-tools": "^1.19",
33-
"spatie/laravel-query-builder": "^5.3|^6.3",
34-
"spatie/laravel-permission": "^6.0"
35-
},
36-
"require-dev": {
37-
"nunomaduro/collision": "^7.9|^8.0",
38-
"orchestra/testbench": "^8.0|^9.0",
39-
"laravel/pint": "^1.0",
40-
"pestphp/pest": "^2.0",
41-
"pestphp/pest-plugin-arch": "^2.0",
42-
"pestphp/pest-plugin-laravel": "^2.0",
43-
"phpunit/phpunit": "^10.0.17|^10.5"
44-
},
45-
"autoload": {
46-
"psr-4": {
47-
"Rupadana\\ApiService\\": "src/"
48-
}
49-
},
50-
"autoload-dev": {
51-
"psr-4": {
52-
"Rupadana\\ApiService\\Tests\\": "tests/"
53-
}
54-
},
55-
"scripts": {
56-
"post-autoload-dump": "@php ./vendor/bin/testbench package:discover --ansi",
57-
"post-install-cmd": [
58-
"yarn install",
59-
"npx husky init"
2+
"name": "rupadana/filament-api-service",
3+
"description": "A simple api service for supporting filamentphp",
4+
"keywords": [
5+
"rupadana",
6+
"laravel",
7+
"api-service",
8+
"api",
9+
"filament",
10+
"filament api"
6011
],
61-
"test": "vendor/bin/pest",
62-
"test-coverage": "vendor/bin/pest --coverage"
63-
},
64-
"config": {
65-
"sort-packages": true,
66-
"allow-plugins": {
67-
"pestphp/pest-plugin": true,
68-
"phpstan/extension-installer": true
69-
}
70-
},
71-
"extra": {
72-
"laravel": {
73-
"providers": [
74-
"Rupadana\\ApiService\\ApiServiceServiceProvider",
75-
"Rupadana\\ApiService\\AuthServiceProvider"
76-
],
77-
"aliases": {
78-
"ApiService": "Rupadana\\ApiService\\Facades\\ApiService"
79-
}
80-
}
81-
},
82-
"minimum-stability": "stable",
83-
"prefer-stable": true
12+
"homepage": "https://github.com/rupadana/api-service",
13+
"support": {
14+
"issues": "https://github.com/rupadana/api-service/issues",
15+
"source": "https://github.com/rupadana/api-service"
16+
},
17+
"license": "MIT",
18+
"authors": [
19+
{
20+
"name": "Rupadana",
21+
"email": "rupadanawayan@gmail.com",
22+
"role": "Developer"
23+
}
24+
],
25+
"require": {
26+
"php": "^8.2",
27+
"dedoc/scramble": "^0.12.10",
28+
"filament/filament": "^4.0",
29+
"illuminate/contracts": "^11.0|^12.0",
30+
"laravel/framework": "^11.0|^12.0",
31+
"laravel/sanctum": "^3.2|^4.0",
32+
"spatie/laravel-package-tools": "^1.19",
33+
"spatie/laravel-permission": "^6.0",
34+
"spatie/laravel-query-builder": "^5.3|^6.3"
35+
},
36+
"require-dev": {
37+
"laravel/pint": "^1.0",
38+
"nunomaduro/collision": "^7.9|^8.0",
39+
"orchestra/testbench": "^9.0|^10.0",
40+
"pestphp/pest": "^2.0|^3.7",
41+
"pestphp/pest-plugin-arch": "^2.0|^3.0",
42+
"pestphp/pest-plugin-laravel": "^2.0|^3.1",
43+
"pestphp/pest-plugin-livewire": "^2.1|^3.0",
44+
"phpunit/phpunit": "^10.0.17|^10.5|^11.5"
45+
},
46+
"autoload": {
47+
"psr-4": {
48+
"Rupadana\\ApiService\\": "src/"
49+
}
50+
},
51+
"autoload-dev": {
52+
"psr-4": {
53+
"Rupadana\\ApiService\\Tests\\": "tests/"
54+
}
55+
},
56+
"scripts": {
57+
"post-autoload-dump": "@php ./vendor/bin/testbench package:discover --ansi",
58+
"post-install-cmd": [
59+
"yarn install",
60+
"npx husky init"
61+
],
62+
"test": "vendor/bin/pest",
63+
"test-coverage": "vendor/bin/pest --coverage"
64+
},
65+
"config": {
66+
"sort-packages": true,
67+
"allow-plugins": {
68+
"pestphp/pest-plugin": true,
69+
"phpstan/extension-installer": true
70+
}
71+
},
72+
"extra": {
73+
"laravel": {
74+
"providers": [
75+
"Rupadana\\ApiService\\ApiServiceServiceProvider",
76+
"Rupadana\\ApiService\\AuthServiceProvider"
77+
],
78+
"aliases": {
79+
"ApiService": "Rupadana\\ApiService\\Facades\\ApiService"
80+
}
81+
}
82+
},
83+
"minimum-stability": "stable",
84+
"prefer-stable": true
8485
}

src/Commands/MakeApiHandlerCommand.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,19 +101,19 @@ public function handle(): int
101101
$namespace .= $resourceNamespace !== '' ? "\\{$resourceNamespace}" : '';
102102

103103
$baseResourcePath =
104-
(string) str($resource)
104+
(string) str("{$pluralModelClass}\\{$resource}")
105105
->prepend('/')
106106
->prepend($path)
107107
->replace('\\', '/')
108108
->replace('//', '/');
109109

110-
$handlersNamespace = "{$namespace}\\{$resourceClass}\\Api\\Handlers";
110+
$handlersNamespace = "{$namespace}\\{$pluralModelClass}\\{$resourceClass}\\Api\\Handlers";
111111

112112
$handlerDirectory = "{$baseResourcePath}/Api/Handlers/$handlerClass.php";
113113

114114
$stubName = $this->getStubForHandler($handlerClass);
115115
$this->copyStubToApp($stubName, $handlerDirectory, [
116-
'resource' => "{$namespace}\\{$resourceClass}",
116+
'resource' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}",
117117
'resourceClass' => $resourceClass,
118118
'handlersNamespace' => $handlersNamespace,
119119
'handlerClass' => $handlerClass,

src/Commands/MakeApiRequest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,18 @@ public function handle(): int
9696
$namespace .= $resourceNamespace !== '' ? "\\{$resourceNamespace}" : '';
9797

9898
$baseResourcePath =
99-
(string) str($resource)
99+
(string) str("{$pluralModelClass}\\{$resource}")
100100
->prepend('/')
101101
->prepend($path)
102102
->replace('\\', '/')
103103
->replace('//', '/');
104104

105105
$requestDirectory = "{$baseResourcePath}/Api/Requests/$nameClass.php";
106106

107-
$modelNamespace = app("{$namespace}\\{$resourceClass}")->getModel();
107+
$modelNamespace = app("{$namespace}\\{$pluralModelClass}\\{$resourceClass}")->getModel();
108108

109109
$this->copyStubToApp('Request', $requestDirectory, [
110-
'namespace' => "{$namespace}\\{$resourceClass}\\Api\\Requests",
110+
'namespace' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}\\Api\\Requests",
111111
'nameClass' => $nameClass,
112112
'validationRules' => $this->getValidationRules(new $modelNamespace),
113113
]);

src/Commands/MakeApiServiceCommand.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,14 @@ public function handle(): int
8989
$deleteHandlerClass = 'DeleteHandler';
9090

9191
$baseResourcePath =
92-
(string) str($resource)
92+
(string) str("{$pluralModelClass}\\{$resource}")
9393
->prepend('/')
9494
->prepend($path)
9595
->replace('\\', '/')
9696
->replace('//', '/');
9797

98-
$transformerClass = "{$namespace}\\{$resourceClass}\\Api\\Transformers\\{$transformer}";
99-
$handlersNamespace = "{$namespace}\\{$resourceClass}\\Api\\Handlers";
98+
$transformerClass = "{$namespace}\\{$pluralModelClass}\\{$resourceClass}\\Api\\Transformers\\{$transformer}";
99+
$handlersNamespace = "{$namespace}\\{$pluralModelClass}\\{$resourceClass}\\Api\\Handlers";
100100

101101
$resourceApiDirectory = "{$baseResourcePath}/Api/$apiServiceClass.php";
102102
$createHandlerDirectory = "{$baseResourcePath}/Api/Handlers/$createHandlerClass.php";
@@ -119,22 +119,22 @@ public function handle(): int
119119
});
120120

121121
$this->copyStubToApp('ResourceApiService', $resourceApiDirectory, [
122-
'namespace' => "{$namespace}\\{$resourceClass}\\Api",
123-
'resource' => "{$namespace}\\{$resourceClass}",
122+
'namespace' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}\\Api",
123+
'resource' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}",
124124
'resourceClass' => $resourceClass,
125125
'resourcePageClass' => $resourceApiDirectory,
126126
'apiServiceClass' => $apiServiceClass,
127127
]);
128128

129129
$this->copyStubToApp('DeleteHandler', $deleteHandlerDirectory, [
130-
'resource' => "{$namespace}\\{$resourceClass}",
130+
'resource' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}",
131131
'resourceClass' => $resourceClass,
132132
'handlersNamespace' => $handlersNamespace,
133133
'model' => $model,
134134
]);
135135

136136
$this->copyStubToApp('DetailHandler', $detailHandlerDirectory, [
137-
'resource' => "{$namespace}\\{$resourceClass}",
137+
'resource' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}",
138138
'resourceClass' => $resourceClass,
139139
'handlersNamespace' => $handlersNamespace,
140140
'transformer' => $transformer,
@@ -143,21 +143,21 @@ public function handle(): int
143143
]);
144144

145145
$this->copyStubToApp('CreateHandler', $createHandlerDirectory, [
146-
'resource' => "{$namespace}\\{$resourceClass}",
146+
'resource' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}",
147147
'resourceClass' => $resourceClass,
148148
'handlersNamespace' => $handlersNamespace,
149149
'model' => $model,
150150
]);
151151

152152
$this->copyStubToApp('UpdateHandler', $updateHandlerDirectory, [
153-
'resource' => "{$namespace}\\{$resourceClass}",
153+
'resource' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}",
154154
'resourceClass' => $resourceClass,
155155
'handlersNamespace' => $handlersNamespace,
156156
'model' => $model,
157157
]);
158158

159159
$this->copyStubToApp('PaginationHandler', $paginationHandlerDirectory, [
160-
'resource' => "{$namespace}\\{$resourceClass}",
160+
'resource' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}",
161161
'resourceClass' => $resourceClass,
162162
'handlersNamespace' => $handlersNamespace,
163163
'transformer' => $transformer,

src/Commands/MakeApiTransformerCommand.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,19 @@ public function handle(): int
8181
$namespace .= $resourceNamespace !== '' ? "\\{$resourceNamespace}" : '';
8282

8383
$baseResourcePath =
84-
(string) str($resource)
84+
(string) str("{$pluralModelClass}\\{$resource}")
8585
->prepend('/')
8686
->prepend($path)
8787
->replace('\\', '/')
8888
->replace('//', '/');
8989

9090
$resourceApiTransformerDirectory = "{$baseResourcePath}/Api/Transformers/$apiTransformerClass.php";
9191

92-
$modelClass = app("{$namespace}\\{$resourceClass}")->getModel();
92+
$modelClass = app("{$namespace}\\{$pluralModelClass}\\{$resourceClass}")->getModel();
9393

9494
$this->copyStubToApp('ApiTransformer', $resourceApiTransformerDirectory, [
95-
'namespace' => "{$namespace}\\{$resourceClass}\\Api\\Transformers",
96-
'resource' => "{$namespace}\\{$resourceClass}",
95+
'namespace' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}\\Api\\Transformers",
96+
'resource' => "{$namespace}\\{$pluralModelClass}\\{$resourceClass}",
9797
'resourceClass' => $resourceClass,
9898
'resourcePageClass' => $resourceApiTransformerDirectory,
9999
'apiTransformerClass' => $apiTransformerClass,

src/Http/Controllers/AuthController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Rupadana\ApiService\Http\Controllers;
44

5+
use Illuminate\Http\JsonResponse;
56
use Illuminate\Routing\Controller;
67
use Illuminate\Support\Facades\Auth;
78
use Rupadana\ApiService\Http\Requests\LoginRequest;
@@ -11,7 +12,7 @@ class AuthController extends Controller
1112
/**
1213
* Login
1314
*
14-
* @return \Illuminate\Http\JsonResponse
15+
* @return JsonResponse
1516
*/
1617
public function login(LoginRequest $request)
1718
{
@@ -40,7 +41,7 @@ public function login(LoginRequest $request)
4041
/**
4142
* Logout
4243
*
43-
* @return \Illuminate\Http\JsonResponse
44+
* @return JsonResponse
4445
*/
4546
public function logout()
4647
{

src/Http/Handlers.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ protected static function getEloquentQuery()
223223
{
224224
$query = app(static::getModel())->query();
225225

226-
if (static::isScopedToTenant() && ApiService::tenancyAwareness() && Filament::getCurrentPanel()) {
226+
if (static::isScopedToTenant() && ApiService::tenancyAwareness() && Filament::getCurrentOrDefaultPanel()) {
227227
$query = static::modifyTenantQuery($query);
228228
}
229229

src/Http/Requests/LoginRequest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Rupadana\ApiService\Http\Requests;
44

5+
use Illuminate\Contracts\Validation\ValidationRule;
56
use Illuminate\Foundation\Http\FormRequest;
67

78
class LoginRequest extends FormRequest
@@ -17,7 +18,7 @@ public function authorize(): bool
1718
/**
1819
* Get the validation rules that apply to the request.
1920
*
20-
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
21+
* @return array<string, ValidationRule|array<mixed>|string>
2122
*/
2223
public function rules(): array
2324
{

0 commit comments

Comments
 (0)