get(); return response()->json($users); } public function store(Request $request) { $request->validate([ 'name' => 'required|string', 'email' => 'required|email|unique:users', 'password' => 'required|string|min:8', 'role_id' => 'required|exists:roles,id', 'department_id' => 'nullable|exists:departments,id', ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), 'role_id' => $request->role_id, 'department_id' => $request->department_id, ]); return $user; } public function show(User $user) { return $user->load(['role', 'department']); } public function update(Request $request, User $user) { $request->validate([ 'name' => 'sometimes|required|string', 'email' => 'sometimes|required|email|unique:users,email,' . $user->id, 'password' => 'nullable|string|min:8', 'role_id' => 'sometimes|required|exists:roles,id', 'department_id' => 'nullable|exists:departments,id', ]); $user->update(array_filter($request->all())); return $user->load(['role', 'department']); } public function destroy(User $user) { $user->delete(); return response()->noContent(); } }