ldc-mesbr-app/app/Http/Controllers/Api/V1/CustomerController.php
Vincent BRIDIER b7cb4c0ab4
Merge API
2023-11-24 20:26:29 +01:00

76 lines
2.5 KiB
PHP

<?php
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
use App\Http\Requests\Api\V1\Customer\StoreRequest;
use App\Http\Requests\Api\V1\Customer\UpdateRequest;
use App\Http\Resources\Api\V1\CustomerResource;
use App\Models\Customer;
class CustomerController extends Controller
{
/**
* Show customer resource
*
* @param \App\Models\Customer $customer
* @return \App\Http\Resources\Api\V1\CustomerResource
*/
public function show(Customer $customer)
{
return new CustomerResource($customer);
}
/**
* Store customer resource
*
* @param \App\Http\Requests\Api\V1\Customer\StoreRequest $request
* @return \App\Http\Resources\Api\V1\CustomerResource
* @throws \Illuminate\Validation\ValidationException ValidationException.
* @throws \Illuminate\Database\Eloquent\MassAssignmentException MassAssignmentException.
* @throws \InvalidArgumentException InvalidArgumentException.
* @throws \Illuminate\Database\Eloquent\InvalidCastException InvalidCastException.
*/
public function store(StoreRequest $request)
{
$customer = new Customer();
$customer->fill($request->validated());
$customer->save();
return new CustomerResource($customer);
}
/**
* Update customer resource
*
* @param \App\Http\Requests\Api\V1\Customer\UpdateRequest $request
* @param \App\Models\Customer $customer
* @return \App\Http\Resources\Api\V1\CustomerResource
* @throws \Illuminate\Validation\ValidationException ValidationException.
* @throws \Illuminate\Database\Eloquent\MassAssignmentException MassAssignmentException.
* @throws \InvalidArgumentException InvalidArgumentException.
* @throws \Illuminate\Database\Eloquent\InvalidCastException InvalidCastException.
*/
public function update(UpdateRequest $request, Customer $customer)
{
$customer->fill($request->validated());
$customer->save();
return new CustomerResource($customer);
}
/**
* Destroy customer resource
*
* @param \App\Models\Customer $customer
* @return \Illuminate\Http\Response|\Illuminate\Contracts\Routing\ResponseFactory ResponseFactory.
* @throws \LogicException LogicException.
* @throws \Illuminate\Contracts\Container\BindingResolutionException BindingResolutionException.
*/
public function destroy(Customer $customer)
{
$customer->delete();
return response("", 204);
}
}