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