- 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.
45 lines
1.5 KiB
PHP
45 lines
1.5 KiB
PHP
<?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);
|
|
}
|
|
}
|
|
}
|