json(['message' => 'Data tidak ditemukan'], 404); } try { $data = CatatanPertumbuhan::where('anak_id', $anakId)->get(); if ($data->isEmpty()) { // Kembalikan array kosong dengan status 200 agar front-end tahu tidak ada kesalahan return response()->json([], 200); } return response()->json($data, 200); } catch (\Exception $e) { return response()->json(['message' => 'Gagal mengambil data pertumbuhan', 'error' => $e->getMessage()], 500); } } // Menyimpan catatan pertumbuhan baru public function store(Request $request) { $request->validate([ 'anak_id' => 'required|exists:anak,id', 'tanggal_pengukuran' => 'required|date', 'berat_badan' => 'required|numeric|min:0', 'tinggi_badan' => 'required|numeric|min:0', 'lingkar_kepala' => 'required|numeric|min:0' ]); try { $catatan = CatatanPertumbuhan::create([ 'anak_id' => $request->anak_id, 'tanggal_pengukuran' => $request->tanggal_pengukuran, 'berat_badan' => $request->berat_badan, 'tinggi_badan' => $request->tinggi_badan, 'lingkar_kepala' => $request->lingkar_kepala, ]); return response()->json($catatan, 201); } catch (\Exception $e) { return response()->json(['message' => 'Gagal menyimpan data pertumbuhan', 'error' => $e->getMessage()], 500); } } // Menampilkan detail catatan pertumbuhan public function show($id) { try { $catatan = CatatanPertumbuhan::find($id); if (!$catatan) { return response()->json(['message' => 'Data tidak ditemukan'], 404); } return response()->json($catatan, 200); } catch (\Exception $e) { return response()->json(['message' => 'Gagal mengambil detail data pertumbuhan', 'error' => $e->getMessage()], 500); } } // Mengupdate catatan pertumbuhan public function update(Request $request, $id) { try { $catatan = CatatanPertumbuhan::find($id); if (!$catatan) { return response()->json(['message' => 'Data tidak ditemukan'], 404); } $request->validate([ 'tanggal_pengukuran' => 'sometimes|date', 'berat_badan' => 'sometimes|required|numeric|min:0', 'tinggi_badan' => 'sometimes|required|numeric|min:0', 'lingkar_kepala' => 'sometimes|required|numeric|min:0' ]); $catatan->update($request->only([ 'tanggal_pengukuran', 'berat_badan', 'tinggi_badan', 'lingkar_kepala' ])); return response()->json($catatan, 200); } catch (\Exception $e) { return response()->json(['message' => 'Gagal mengupdate data pertumbuhan', 'error' => $e->getMessage()], 500); } } // Menghapus catatan pertumbuhan public function destroy($id) { try { $catatan = CatatanPertumbuhan::find($id); if (!$catatan) { return response()->json(['message' => 'Data tidak ditemukan'], 404); } $catatan->delete(); return response()->json(['message' => 'Data berhasil dihapus'], 200); } catch (\Exception $e) { return response()->json(['message' => 'Gagal menghapus data pertumbuhan', 'error' => $e->getMessage()], 500); } } }