76 lines
2.5 KiB
PHP
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);
|
|
}
|
|
}
|