<?php namespace App\Http\Controllers\CRUD; use Illuminate\Http\Request; use App\Models\Bhp; use Illuminate\Support\Facades\Storage; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; class BhpController extends Controller { public function index() { $bhps = Bhp::all(); return response()->json($bhps); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'nama_bhp' => 'required', 'tipe' => 'required', 'stok' => 'required', 'no_inventaris' => 'required', 'foto_bhp' => 'required', ]); if ($validator->fails()) { return response()->json($validator->errors(), 400); } if ($request->hasFile('foto_bhp')) { $file = $request->file('foto_bhp'); $uuid = (string) Str::uuid(); $extension = $file->getClientOriginalExtension(); $filename = $uuid . '.' . $extension; $path = $file->storeAs('public/bhp', $filename); $newpath = 'storage/bhp/' . $filename; } else { return response()->json([ 'success' => false, 'message' => 'Foto bhp tidak ditemukan' ], 400); } $bhp = Bhp::create([ 'nama_bhp' => $request->nama_bhp, 'tipe' => $request->tipe, 'stok' => $request->stok, 'no_inventaris' => $request->no_inventaris, 'foto_bhp' => $newpath, ]); return response()->json(['message' => 'Bhp berhasil ditambahkan']); } public function show($id) { $bhp = Bhp::find($id); if ($bhp) { return response()->json($bhp); } else { return response()->json(['message' => 'Bhp tidak ditemukan'], 404); } } public function update(Request $request, $id) { $db_bhp = Bhp::findOrFail($id); $validator = Validator::make($request->all(), [ 'nama_bhp' => 'required', 'tipe' => 'required', 'stok' => 'required', 'no_inventaris' => 'required', 'foto_bhp' => 'image', ]); if ($validator->fails()) { return response()->json($validator->errors(), 400); } $data = [ 'nama_bhp' => $request->nama_bhp, 'tipe' => $request->tipe, 'stok' => $request->stok, 'no_inventaris' => $request->no_inventaris, ]; if ($request->hasFile('foto_bhp')) { if (File::exists(public_path($db_bhp->foto_bhp))) { File::delete(public_path($db_bhp->foto_bhp)); } $file = $request->file('foto_bhp'); $uuid = (string) Str::uuid(); $extension = $file->getClientOriginalExtension(); $filename = $uuid . '.' . $extension; $path = $file->storeAs('public/bhp', $filename); $newpath = 'storage/bhp/' . $filename; $data['foto_bhp'] = $newpath; } $db_bhp->update($data); return response()->json(['message' => 'bhp berhasil diupdate'], 200); } public function destroy($id) { $bhp = Bhp::findOrFail($id); if(File::exists($bhp->foto_bhp)){ File::delete($bhp->foto_bhp); } if (!$bhp) { return response()->json(['message' => 'Bhp tidak ditemukan'], 404); } $bhp->delete(); return response()->json(['message' => 'Bhp berhasil dihapus']); } }