Skip to content

Commit ad8081e

Browse files
committed
Ajustes nos models e no controller Paciente.
1 parent f57795e commit ad8081e

File tree

5 files changed

+71
-2
lines changed

5 files changed

+71
-2
lines changed

app/Http/Controllers/API/PacienteController.php

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class PacienteController extends Controller
1515
*/
1616
public function index()
1717
{
18-
$pacientes = Paciente::all();
18+
$pacientes = Paciente::with('doencas')->get();
1919
return response([
2020
'pacientes' => $pacientes
2121
], 200);
@@ -45,6 +45,55 @@ public function store(Request $request)
4545
);
4646
}
4747

48+
public function associar_doenca(Request $request, $id)
49+
{
50+
$data = $request->validate([
51+
'doencas' => ['exists:doencas,id'],
52+
]);
53+
54+
$paciente = Paciente::find($id);
55+
56+
if ($data && count($data['doencas']) != 0 && $paciente == true)
57+
{
58+
$paciente->doencas()->syncWithoutDetaching($data['doencas']);
59+
$message = 'Doenças associada ao paciente';
60+
$status = 200;
61+
}
62+
else {
63+
$message = 'Falha ao associar doença(s)!';
64+
$status = 412;
65+
}
66+
67+
return response([
68+
'message' => $message
69+
], $status);
70+
}
71+
72+
public function desassociar_doenca(Request $request, $id)
73+
{
74+
$data = $request->validate([
75+
'doencas' => ['exists:doencas,id'],
76+
]);
77+
78+
$paciente = Paciente::find($id);
79+
80+
if ($data && count($data['doencas']) != 0 && $paciente == true)
81+
{
82+
$paciente->doencas()->detach($data['doencas']);
83+
$message = 'Doenças desassociada do paciente.';
84+
$status = 200;
85+
}
86+
else {
87+
$message = 'Falha ao desassociada doença(s).';
88+
$status = 412;
89+
}
90+
91+
return response([
92+
'message' => $message
93+
], $status);
94+
}
95+
96+
4897
/**
4998
* Display the specified resource.
5099
*
@@ -53,8 +102,9 @@ public function store(Request $request)
53102
*/
54103
public function show(Paciente $paciente)
55104
{
105+
$p = Paciente::with('doencas')->find($paciente->id);
56106
return response([
57-
'paciente' => $paciente
107+
'paciente' => $p
58108
], 200);
59109
}
60110

app/Models/Doenca.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ class Doenca extends Model
1111
use HasFactory;
1212

1313
protected $fillable = ['nome'];
14+
15+
protected $hidden = [
16+
'created_at',
17+
'updated_at',
18+
];
19+
1420

1521
public function pacientes()
1622
{

app/Models/Paciente.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ class Paciente extends Model
1212

1313
protected $fillable = ['nome', 'data_nascimento', 'sus', 'sexo_id', 'uf_id', 'municipio_id'];
1414

15+
protected $hidden = [
16+
'created_at',
17+
'updated_at',
18+
];
19+
1520
public function sexo()
1621
{
1722
return $this->belongsTo(Sexo::class, 'sexo_id');

app/Models/Pesquisador.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ class Pesquisador extends Model
1313

1414
protected $fillable = ['nome', 'cpf', 'data_nascimento', 'sexo_id', 'uf_id', 'municipio_id'];
1515

16+
protected $hidden = [
17+
'created_at',
18+
'updated_at',
19+
];
20+
1621
public function sexo()
1722
{
1823
return $this->belongsTo(Sexo::class, 'sexo_id');

routes/api.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939
'pesquisadores' => PesquisadorController::class,
4040
]);
4141

42+
Route::post('pacientes/{id}/doenca', [PacienteController::class, 'associar_doenca']);
43+
Route::post('pacientes/{id}/desassociar_doenca', [PacienteController::class, 'desassociar_doenca']);
44+
4245
Route::get('localidade/{id?}', [LocalidadeController::class, 'index']);
4346
Route::post('localidade/uf', [LocalidadeController::class, 'store_uf']);
4447
Route::put('localidade/uf/{id}', [LocalidadeController::class, 'update_uf']);

0 commit comments

Comments
 (0)