Use api resource for Client model

This commit is contained in:
Matthew Shillam 2018-10-22 19:44:20 +01:00
parent e33c5f8460
commit 6ae89fd919
2 changed files with 34 additions and 13 deletions

View File

@ -2,13 +2,11 @@
namespace App\Http\Controllers\API\v1;
use App\Notifications\BackupComplete;
use App\Http\Controllers\Controller;
use App\Http\Resources\ClientResource;
use Illuminate\Http\Request;
use Carbon\Carbon;
use App\Client;
use App\Backup;
class ClientController extends Controller
{
@ -19,9 +17,9 @@ class ClientController extends Controller
*/
public function index()
{
$client = Client::first();
$backup = Backup::first();
$client->notify(new BackupComplete($backup));
return Client::paginate(10);
//return ClientResource::collection(Client::paginate(10));
// return BookResource::collection(Book::with('ratings')->paginate(25));
}
/**
@ -35,7 +33,7 @@ class ClientController extends Controller
$found = Client::where('client_name', '=', $request['client_name'])->first();
if ($found) {
return response()->json(['message' => 'Client allready exists!'], 404);
return response()->json(['error' => 'Client allready exists!'], 403);
}
$client = Client::create([
@ -44,11 +42,15 @@ class ClientController extends Controller
'secret_key' => $request['secret_key'],
]);
return response()->json([
'message' => 'Client added successfully',
'id' => $client->id ],
200
);
// return $client;
return new ClientResource($client);
// Alternative manual way.
// return response()->json([
// 'message' => 'Client added successfully',
// 'id' => $client->id ],
// 200
// );
}
@ -61,7 +63,7 @@ class ClientController extends Controller
public function show($id)
{
$client = Client::findOrFail($id);
return $client;
return new ClientResource($client);
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class ClientResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return parent::toArray($request);
}
}