feat(lampiran-dokumen): tambahkan fitur upload, download, dan delete lampiran dokumen

- Menambahkan controller LampiranDokumenController untuk mengelola lampiran dokumen.
- Menambahkan model LampiranDokumen untuk interaksi dengan tabel lampiran_dokumen.
- Membuat migrasi untuk tabel lampiran_dokumen dengan kolom yang diperlukan.
- Menambahkan rute untuk mengupload, mendownload, dan menghapus lampiran dokumen.
- Memperbarui tampilan detail-jaminan untuk menampilkan dan mengelola lampiran dokumen.
This commit is contained in:
Daeng Deni Mardaeni
2025-03-09 10:49:51 +07:00
parent 9619b74695
commit 33667ede21
6 changed files with 224 additions and 9 deletions

View File

@@ -0,0 +1,44 @@
<?php
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Modules\Lpj\Models\LampiranDokumen;
class LampiranDokumenController extends Controller
{
public function download($id)
{
$lampiran = LampiranDokumen::findOrFail($id);
return Storage::download($lampiran->path_file, $lampiran->nama_file);
}
public function upload(Request $request)
{
$request->validate([
'permohonan_id' => 'required|exists:permohonan,id',
'nama_file' => 'nullable|string|max:255',
'file' => 'required|file|max:10240',
'keterangan' => 'nullable|string|max:255',
]);
$lampiran = LampiranDokumen::uploadLampiran($request->all());
if ($lampiran) {
return response()->json(['message' => 'Lampiran uploaded successfully', 'data' => $lampiran]);
} else {
return response()->json(['message' => 'Unauthorized or upload failed'], 403);
}
}
public function delete(LampiranDokumen $lampiran)
{
if ($lampiran->deleteLampiran()) {
return response()->json(['message' => 'Lampiran deleted successfully']);
} else {
return response()->json(['message' => 'Unauthorized or delete failed'], 403);
}
}
}