MIF_E31222675/app/Http/Controllers/RiwayatPenyakitController.php

97 lines
2.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\RiwayatPenyakit;
use Illuminate\Http\Request;
class RiwayatPenyakitController extends Controller
{
// Menampilkan semua riwayat penyakit untuk anak tertentu
public function index(Request $request)
{
$request->validate([
'anak_id' => 'required|exists:anak,id'
]);
$riwayatPenyakit = RiwayatPenyakit::where('anak_id', $request->anak_id)->get();
return response()->json([
'message' => 'Data riwayat penyakit berhasil diambil',
'data' => $riwayatPenyakit
], 200);
}
// Menyimpan riwayat penyakit baru
public function store(Request $request)
{
$request->validate([
'anak_id' => 'required|exists:anak,id',
'nama_penyakit' => 'required|string|max:255',
'tanggal_sakit' => 'required|date',
'deskripsi' => 'nullable|string',
'obat' => 'nullable|string',
]);
$riwayat = RiwayatPenyakit::create($request->all());
return response()->json([
'message' => 'Riwayat penyakit berhasil ditambahkan',
'data' => $riwayat
], 201);
}
// Menampilkan detail riwayat penyakit berdasarkan ID
public function show($id)
{
$riwayat = RiwayatPenyakit::find($id);
if (!$riwayat) {
return response()->json(['message' => 'Riwayat penyakit tidak ditemukan'], 404);
}
return response()->json([
'message' => 'Data riwayat penyakit ditemukan',
'data' => $riwayat
], 200);
}
// Mengupdate riwayat penyakit berdasarkan ID
public function update(Request $request, $id)
{
$request->validate([
'nama_penyakit' => 'sometimes|required|string|max:255',
'tanggal_sakit' => 'sometimes|required|date',
'deskripsi' => 'nullable|string',
'obat' => 'nullable|string',
]);
$riwayat = RiwayatPenyakit::find($id);
if (!$riwayat) {
return response()->json(['message' => 'Riwayat penyakit tidak ditemukan'], 404);
}
$riwayat->update($request->all());
return response()->json([
'message' => 'Riwayat penyakit berhasil diperbarui',
'data' => $riwayat
], 200);
}
// Menghapus riwayat penyakit berdasarkan ID
public function destroy($id)
{
$riwayat = RiwayatPenyakit::find($id);
if (!$riwayat) {
return response()->json(['message' => 'Riwayat penyakit tidak ditemukan'], 404);
}
$riwayat->delete();
return response()->json(['message' => 'Riwayat penyakit berhasil dihapus'], 200);
}
}