has('page')) { return UserResource::collection(User::paginate(5)); } else { return UserResource::collection(User::all()); } } public function getUser($id) { return new UserResource(User::find($id)); } public function store(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users', 'password' => 'min:3' ]); $user = new User(); $user->username = $request->email; $user->fill($request->all()); $user->password = Hash::make($user->password); $user->save(); auth()->login($user); \Mail::to($user)->send(new Mail); return response()->json(new UserResource($user), 201); } public function update(Request $request, $id) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users'.$id, 'password' => 'min:3' ]); $user = User::findOrFail($id); $user->username = $request->email; $user->update($request->all()); return new UserResource($user); } public function delete($id) { $user = User::findOrFail($id); $user->delete(); return response()->json(null, 204); } public function emailAvailable(Request $request) { $totalEmail = 1; if ($request->has('email') && $request->has('id')) { $totalEmail = DB::table('users')->where('email', '=', $request->email)->where('id', '<>', $request->id)->count(); } else if ($request->has('email')) { $totalEmail = DB::table('users')->where('email', '=', $request->email)->count(); } return response()->json($totalEmail == 0); } }