Create client

This commit is contained in:
Peter Papp
2021-04-23 08:37:54 +02:00
parent 16c47465e6
commit 9a5f9fe49d
5 changed files with 157 additions and 8 deletions
@@ -2,10 +2,15 @@
namespace App\Http\Controllers\Oasis;
use App\Http\Requests\Oasis\StoreClientRequest;
use App\Http\Resources\Oasis\OasisClientCollection;
use App\Http\Controllers\Controller;
use App\Http\Resources\Oasis\OasisClientResource;
use App\Models\Oasis\Client;
use Auth;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
class ClientController extends Controller
{
@@ -34,4 +39,31 @@ class ClientController extends Controller
new OasisClientCollection($results), 200
);
}
/**
* @param StoreClientRequest $request
* @return Application|ResponseFactory|Response
*/
public function store(StoreClientRequest $request)
{
$client = $request->user()
->clients()
->create([
'avatar' => store_avatar($request, 'avatar') ?? null,
'name' => $request->name,
'email' => $request->email ?? null,
'phone_number' => $request->phone_number ?? null,
'address' => $request->address,
'city' => $request->city,
'postal_code' => $request->postal_code,
'country' => $request->country,
'ico' => $request->ico ?? null,
'dic' => $request->dic ?? null,
'ic_dph' => $request->ic_dph ?? null,
]);
return response(
new OasisClientResource($client), 201
);
}
}
@@ -0,0 +1,40 @@
<?php
namespace App\Http\Requests\Oasis;
use Illuminate\Foundation\Http\FormRequest;
class StoreClientRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'avatar' => 'sometimes|file|nullable',
'name' => 'required|string',
'email' => 'sometimes|email|nullable',
'phone_number' => 'sometimes|string|nullable',
'address' => 'required|string',
'city' => 'required|string',
'postal_code' => 'required|string',
'country' => 'required|string',
'ico' => 'required|string',
'dic' => 'required|string',
'ic_dph' => 'required|string',
];
}
}