API Generator
Last updated
namespace App\Http\Controllers\Api\V1\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreUserRequest;
use App\Http\Requests\UpdateUserRequest;
use App\Http\Resources\Admin\UserResource;
use App\User;
use Gate;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class UsersApiController extends Controller
{
public function index()
{
abort_if(Gate::denies('user_access'), Response::HTTP_FORBIDDEN, '403 Forbidden');
return new UserResource(User::with(['roles'])->get());
}
public function store(StoreUserRequest $request)
{
$user = User::create($request->all());
$user->roles()->sync($request->input('roles', []));
return (new UserResource($user))
->response()
->setStatusCode(Response::HTTP_CREATED);
}
public function show(User $user)
{
abort_if(Gate::denies('user_show'), Response::HTTP_FORBIDDEN, '403 Forbidden');
return new UserResource($user->load(['roles']));
}
public function update(UpdateUserRequest $request, User $user)
{
$user->update($request->all());
$user->roles()->sync($request->input('roles', []));
return (new UserResource($user))
->response()
->setStatusCode(Response::HTTP_ACCEPTED);
}
public function destroy(User $user)
{
abort_if(Gate::denies('user_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden');
$user->delete();
return response(null, Response::HTTP_NO_CONTENT);
}
}Route::group(['prefix' => 'admin', 'as' => 'admin.', 'namespace' => 'Api\V1\Admin'], function () {
Route::apiResource('users', 'UsersApiController');
});namespace App\Http\Resources\Admin;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
public function toArray($request)
{
return parent::toArray($request);
}
}