user(); if (!$user) { return response()->json(['message' => 'Unauthorized'], 401); } $request->validate([ 'foto' => 'required|image|mimes:jpg,jpeg,png|max:2048', ]); $path = $request->file('foto')->store('foto', 'public'); $url = asset('storage/' . $path); $foto = FotoSementara::create([ 'id_user' => $user->id, 'url' => $url, ]); return response()->json($foto, 201); } public function hapus(Request $request, int $id) { $user = $request->user(); if (!$user) { return response()->json(['message' => 'Unauthorized'], 401); } $foto = FotoSementara::findOrFail($id); // Extract the relative path from the URL $relativePath = str_replace(asset('storage') . '/', '', $foto->url); if ($foto->url && Storage::disk('public')->exists($relativePath)) { Storage::disk('public')->delete($relativePath); } $foto->delete(); return response()->json(['message' => 'Foto berhasil dihapus']); } public function getAll(Request $request) { $user = $request->user(); if (!$user) { return response()->json(['message' => 'Unauthorized'], 401); } $data = FotoSementara::where('id_user', $user->id)->get(); return response()->json($data); } public function reset(Request $request) { $user = $request->user(); if (!$user) { return response()->json(['message' => 'Unauthorized'], 401); } FotoSementara::where('id_user', $user->id)->delete(); return response()->json(['message' => 'Foto sementara berhasil direset']); } }