From a4df265d09386b4df722d61bcc9c22174a05d390 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 26 Jan 2016 22:36:00 +1100 Subject: [PATCH] Update client via API --- app/Http/Controllers/ClientApiController.php | 42 +++++++++++++++++++- app/Http/Middleware/VerifyCsrfToken.php | 1 + 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ClientApiController.php b/app/Http/Controllers/ClientApiController.php index b94b7479b106..e9f5daf4e07a 100644 --- a/app/Http/Controllers/ClientApiController.php +++ b/app/Http/Controllers/ClientApiController.php @@ -9,16 +9,20 @@ use App\Ninja\Repositories\ClientRepository; use App\Http\Requests\CreateClientRequest; use App\Http\Controllers\BaseAPIController; use App\Ninja\Transformers\ClientTransformer; +use App\Services\ClientService; +use App\Http\Requests\UpdateClientRequest; class ClientApiController extends BaseAPIController { protected $clientRepo; + protected $clientService; - public function __construct(ClientRepository $clientRepo) + public function __construct(ClientRepository $clientRepo, ClientService $clientService) { parent::__construct(); $this->clientRepo = $clientRepo; + $this->clientService = $clientService; } public function ping() @@ -104,4 +108,40 @@ class ClientApiController extends BaseAPIController return $this->response($data); } + + /** + * @SWG\Putt( + * path="/clients/{client_id}", + * tags={"client"}, + * summary="Update a client", + * @SWG\Parameter( + * in="body", + * name="body", + * @SWG\Schema(ref="#/definitions/Client") + * ), + * @SWG\Response( + * response=200, + * description="Update client", + * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Client")) + * ), + * @SWG\Response( + * response="default", + * description="an ""unexpected"" error" + * ) + * ) + */ + + public function update(UpdateClientRequest $request) + { + $client = $this->clientService->save($request->input()); + + $client = Client::scope($client->public_id) + ->with('country', 'contacts', 'industry', 'size', 'currency') + ->first(); + + $transformer = new ClientTransformer(Auth::user()->account, Input::get('serializer')); + $data = $this->createItem($client, $transformer, ENTITY_CLIENT); + + return $this->response($data); + } } diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index e1cd17f5dd37..8c159e39ea74 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -8,6 +8,7 @@ class VerifyCsrfToken extends BaseVerifier { private $openRoutes = [ 'signup/register', 'api/v1/login', + 'api/v1/clients/*', 'api/v1/clients', 'api/v1/invoices/*', 'api/v1/invoices',