Skip to content
This repository was archived by the owner on Feb 18, 2023. It is now read-only.

Commit 8b518d1

Browse files
committed
Upgrade Laravel API Tools and use Dingo API.
1 parent bd07f88 commit 8b518d1

File tree

13 files changed

+828
-388
lines changed

13 files changed

+828
-388
lines changed

.env.example

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ APP_ENV=local
22
APP_DEBUG=true
33
APP_KEY=base64:JqyMTmt5qr1CW6BH+GG+4iKfU4RiNjZTLy33TdTT7+4=
44

5+
API_STANDARDS_TREE=vnd
6+
API_SUBTYPE=api
7+
API_PREFIX=api
8+
API_VERSION=v1
9+
API_DEBUG=true
10+
511
DB_HOST=localhost
612
DB_DATABASE=laravel_api
713
DB_USERNAME=homestead

app/Http/Controllers/Users/UsersController.php

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
namespace App\Http\Controllers\Users;
44

55
use Illuminate\Http\Request;
6+
use Dingo\Api\Routing\Helpers;
67
use App\Http\Controllers\Controller;
78
use App\Contracts\Users\UsersServiceContract;
8-
use Joselfonseca\LaravelApiTools\Traits\ResponseBuilder;
99

1010
/**
1111
* Class UsersController
@@ -14,7 +14,7 @@
1414
class UsersController extends Controller
1515
{
1616

17-
use ResponseBuilder;
17+
use Helpers;
1818

1919
/**
2020
* @var UsersServiceContract
@@ -35,55 +35,59 @@ public function __construct(UsersServiceContract $service)
3535
$this->middleware('permission:Delete users')->only('destroy');
3636
}
3737

38+
3839
/**
3940
* @return mixed
4041
*/
4142
public function index()
4243
{
4344
$users = $this->service->get();
44-
return response()->json($this->service->transform($users));
45+
return $this->response->array($this->service->transform($users));
4546
}
4647

4748

4849
/**
4950
* @param $id
50-
* @return \Illuminate\Http\JsonResponse
51+
* @return mixed
5152
*/
5253
public function show($id)
5354
{
54-
return response()->json($this->service->transform($this->service->find($id)));
55+
return $this->response->array($this->service->transform($this->service->find($id)));
5556
}
5657

58+
5759
/**
5860
* @param Request $request
59-
* @return \Symfony\Component\HttpFoundation\Response
61+
* @return mixed
6062
*/
6163
public function store(Request $request)
6264
{
6365
$attributes = $request->all();
6466
$user = $this->service->create($attributes);
65-
return $this->created(url('api/users/'.$user->uuid), $this->service->transform($user));
67+
return $this->response->created(url('api/users/'.$user->uuid), $this->service->transform($user));
6668
}
6769

70+
6871
/**
6972
* @param Request $request
7073
* @param $uuid
71-
* @return \Illuminate\Http\JsonResponse
74+
* @return mixed
7275
*/
7376
public function update(Request $request, $uuid)
7477
{
7578
$user = $this->service->update($uuid, $request->all());
76-
return response()->json($this->service->transform($user));
79+
return $this->response->array($this->service->transform($user));
7780
}
7881

82+
7983
/**
8084
* @param Request $request
8185
* @param $uuid
82-
* @return \Symfony\Component\HttpFoundation\Response
86+
* @return mixed
8387
*/
8488
public function destroy(Request $request, $uuid)
8589
{
8690
$this->service->delete($uuid);
87-
return $this->noContent();
91+
return $this->response->noContent();
8892
}
8993
}

app/Providers/AuthServiceProvider.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Carbon\Carbon;
66
use Laravel\Passport\Passport;
7+
use Joselfonseca\LaravelApiTools\Auth\PassportAuthenticationProvider;
78
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
89

910
class AuthServiceProvider extends ServiceProvider
@@ -28,5 +29,8 @@ public function boot()
2829
Passport::routes();
2930
Passport::tokensExpireIn(Carbon::now()->addHours(10));
3031
Passport::refreshTokensExpireIn(Carbon::now()->addDays(3));
32+
app('Dingo\Api\Auth\Auth')->extend('passport', function ($app) {
33+
return app(PassportAuthenticationProvider::class);
34+
});
3135
}
3236
}

app/Providers/RouteServiceProvider.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,6 @@ protected function mapWebRoutes()
6565
*/
6666
protected function mapApiRoutes()
6767
{
68-
Route::prefix('api')
69-
->middleware('api')
70-
->namespace($this->namespace)
71-
->group(base_path('routes/api.php'));
68+
require base_path('routes/api.php');
7269
}
7370
}

composer.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@
1515
"require": {
1616
"php": ">=5.6.4",
1717
"laravel/framework": "5.4.*",
18+
"dingo/api": "1.0.*@dev",
1819
"laravel/tinker": "~1.0",
1920
"joselfonseca/laravel-tactician" : "0.3.*",
20-
"joselfonseca/laravel-api-tools": "^2.2",
21+
"spatie/laravel-fractal": "^3.3",
2122
"laravel/passport": "^2.0",
2223
"webpatser/laravel-uuid": "^2.0",
23-
"spatie/laravel-permission": "^1.7"
24+
"spatie/laravel-permission": "^1.7",
25+
"joselfonseca/laravel-api-tools" : "3.0.*"
2426
},
2527
"require-dev": {
2628
"fzaninotto/faker": "~1.4",
@@ -37,7 +39,8 @@
3739
},
3840
"autoload-dev": {
3941
"psr-4": {
40-
"Tests\\": "tests/"
42+
"Tests\\": "tests/",
43+
"Joselfonseca\\LaravelApiTools\\": "packages/laravel-api-tools/src/"
4144
}
4245
},
4346
"scripts": {

0 commit comments

Comments
 (0)