add feat upload pbg task
This commit is contained in:
82
app/Http/Controllers/Api/PbgTaskAttachmentsController.php
Normal file
82
app/Http/Controllers/Api/PbgTaskAttachmentsController.php
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\PbgTaskAttachment;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class PbgTaskAttachmentsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request, $pbg_task_id)
|
||||
{
|
||||
try{
|
||||
$request->validate([
|
||||
'file' => 'required|file|mimes:jpg,png,pdf|max:5120',
|
||||
'pbg_type' => 'string'
|
||||
]);
|
||||
|
||||
$file = $request->file('file');
|
||||
$path = $file->store("uploads/pbg-tasks/{$pbg_task_id}", "public");
|
||||
|
||||
$attachment = PbgTaskAttachment::create([
|
||||
'pbg_task_id' => $pbg_task_id,
|
||||
'file_name' => $file->getClientOriginalName(),
|
||||
'file_path' => $path,
|
||||
'pbg_type' => $request->pbg_type
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'File uploaded successfully.',
|
||||
'attachment' => [
|
||||
'id' => $attachment->id,
|
||||
'file_name' => $attachment->file_name,
|
||||
'file_url' => Storage::url($attachment->file_path),
|
||||
'pbg_type' => $attachment->pbg_type
|
||||
]
|
||||
]);
|
||||
}catch(\Exception $e){
|
||||
\Log::error($e->getMessage());
|
||||
return response()->json([
|
||||
"success" => false,
|
||||
"message" => $e->getTraceAsString()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -21,12 +21,18 @@ class RequestAssignmentController extends Controller
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$query = PbgTask::query()->orderBy('id', 'desc');
|
||||
if($request->has('search') && !empty($request->get("search"))){
|
||||
$query->where('name', 'LIKE', '%'.$request->get('search').'%')
|
||||
->orWhere('registration_number', 'LIKE', '%'.$request->get('search').'%')
|
||||
->orWhere('document_number', 'LIKE', '%'.$request->get('search').'%');
|
||||
$query = PbgTask::with(['attachments' => function ($q) {
|
||||
$q->whereIn('pbg_type', ['berita_acara', 'bukti_bayar']);
|
||||
}])->orderBy('id', 'desc');
|
||||
|
||||
if ($request->has('search') && !empty($request->get("search"))) {
|
||||
$query->where(function ($q) use ($request) {
|
||||
$q->where('name', 'LIKE', '%' . $request->get('search') . '%')
|
||||
->orWhere('registration_number', 'LIKE', '%' . $request->get('search') . '%')
|
||||
->orWhere('document_number', 'LIKE', '%' . $request->get('search') . '%');
|
||||
});
|
||||
}
|
||||
|
||||
return RequestAssignmentResouce::collection($query->paginate());
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,14 @@ class RequestAssignmentResouce extends JsonResource
|
||||
'due_date' => $this->due_date,
|
||||
'land_certificate_phase' => $this->land_certificate_phase,
|
||||
'task_created_at' => $this->task_created_at,
|
||||
'attachment_berita_acara' => $this->attachments
|
||||
->where('pbg_type', 'berita_acara')
|
||||
->sortByDesc('created_at')
|
||||
->first(),
|
||||
'attachment_bukti_bayar' => $this->attachments
|
||||
->where('pbg_type', 'bukti_bayar')
|
||||
->sortByDesc('created_at')
|
||||
->first(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user