%PDF- %PDF-
Direktori : /home2/vacivi36/core/app/Http/Controllers/ |
Current File : //home2/vacivi36/core/app/Http/Controllers/UserController.php |
<?php namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; class UserController extends Controller { /** * Exibir a lista de usuários. */ public function index() { $users = User::with('company')->get()->makeHidden('password'); return response()->json($users); } /** * Criar um novo usuário. */ public function store(Request $request) { // Verifica se o e-mail já está cadastrado if (User::where('email', $request->email)->exists()) { return response()->json(['status' => 'error', 'message' => 'E-mail já cadastrado no sistema. Por favor, utilize outro e-mail.'], 409); } $user = new User(); $user->name = $request->name; $user->email = $request->email; $user->password = Hash::make($request->password); $user->status = $request->has('status') ? 1 : 0; $user->administrator = $request->has('administrator') ? 1 : 0; $user->company_id = $request->company_id; $insert = $user->save(); if ($insert) { return response()->json(['status' => 'success', 'message' => 'Usuário criado com sucesso!'], 201); } else { return response()->json(['status' => 'error', 'message' => 'Erro ao criar usuário.'], 500); } } /** * Exibir um usuário específico. */ public function show(Request $request) { return User::where('email', $request->email)->first()->makeHidden('password'); } /** * Atualizar um usuário existente. */ public function update(Request $request, $id) { $user = User::findOrFail($id); $user->name = $request->name; $user->email = $request->email; // Atualizando a senha apenas se for fornecida uma nova senha if ($request->filled('password')) { $user->password = Hash::make($request->password); } $user->status = $request->has('status') ? ($request->status ? 1 : 0) : $user->status; $user->administrator = $request->has('administrator') ? ($request->administrator ? 1 : 0) : $user->administrator; $user->company_id = $request->company_id; $update = $user->save(); if ($update) { return response()->json(['status' => 'success', 'message' => 'Usuário atualizado com sucesso!'], 200); } else { return response()->json(['status' => 'error', 'message' => 'Erro ao atualizar usuário.'], 500); } } /** * Remover um usuário. */ public function destroy($id) { $user = User::findOrFail($id); $user->delete(); return response()->json(['message' => 'Usuário excluído com sucesso!']); } public function listActive() { return User::where('status', true)->get(); } }