42 lines
965 B
PHP
42 lines
965 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\User;
|
|
use App\Http\Resources\User as UserResource;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Str;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class UserController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$this->authorize('viewAny', User::class);
|
|
|
|
return UserResource::collection(User::all());
|
|
}
|
|
|
|
public function store()
|
|
{
|
|
$this->authorize('create', User::class);
|
|
|
|
request()['password'] = Hash::make(Str::random(30));
|
|
$user = User::create($this->validateData());
|
|
|
|
return (new UserResource($user))
|
|
->response()
|
|
->setStatusCode(Response::HTTP_CREATED);
|
|
}
|
|
|
|
private function validateData()
|
|
{
|
|
return request()->validate([
|
|
'name' => 'required',
|
|
'email' => 'required|email',
|
|
'password' => 'required'
|
|
]);
|
|
}
|
|
}
|