allowedFilters(['name', 'email', 'root_admin']) ->allowedSorts(['id']) ->paginate($request->query('per_page') ?? 50); return $users; } /** * @param User $user * @return Response */ public function show(User $user) { return new Response([ 'data' => $user ]); } /** * @param StoreUserRequest $request * @return Response */ public function store(StoreUserRequest $request) { $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), 'root_admin' => $request->root_admin ]); return $this->returnContent([ 'data' => $user, 'message' => 'User created', ]); } /** * @param User $user * @return Response */ public function destroy(User $user) { $user->delete(); return $this->returnContent([ 'message' => 'User deleted' ]); } /** * @param User $user * @param UpdateUserRequest $request * @return Response */ public function update(User $user, UpdateUserRequest $request) { if (isset($request->password)) { $user->update([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), 'root_admin' => $request->root_admin ]); } else { $user->update($request->safe()->except(['password'])); } return $this->returnContent([ 'data' => $user, 'message' => 'User updated', ]); } }