%PDF- %PDF-
| Direktori : /home/vacivi36/core/app/Http/Controllers/ |
| Current File : /home/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();
}
}