Display Uploaded Files

This commit is contained in:
R
2023-02-15 12:30:35 +07:00
parent 27523b8cce
commit 5d4033a9ca
13 changed files with 149 additions and 28 deletions

View File

@@ -4,6 +4,7 @@ namespace Modules\HospitalPortal\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\ClaimRequest;
use App\Models\File;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
@@ -17,7 +18,6 @@ class ClaimRequestController extends Controller
public function index(request $request)
{
$claimRequests = ClaimRequest::query()
->with(['member'])
->when($request->search, function ($q, $search) {
$q->where('code', 'LIKE', "%".$search."%");
})
@@ -29,6 +29,7 @@ class ClaimRequestController extends Controller
->when($request->status, function($q, $status) {
$q->where('status', $status);
})
->with(['member'])
->paginate();
return Helper::responseJson($claimRequests);
@@ -64,11 +65,19 @@ class ClaimRequestController extends Controller
if ($request->hasFile('result_files')) {
foreach ($request->result_files as $file) {
// $newClaimRequest->files()->create()
$pathFile = File::storeFile('claim', $newClaimRequest->id, $file);
$newClaimRequest->files()->updateOrCreate([
'type' => 'result',
'name' => File::getFileName('claim', $newClaimRequest->id, $file),
'original_name' => $file->getClientOriginalName(),
'extension' => $file->getClientOriginalExtension(),
'path' => $pathFile,
'created_by' => auth()->user()->id,
'updated_by' => auth()->user()->id,
]);
}
}
return ($request->files_result[0]->getClientOriginalName());
die('asdasd');
return ($request->result_files[0]->getClientOriginalName());
return Helper::responseJson(data: $request->toArray(), message: 'Claim Request berhasil ajukan!');
}

View File

@@ -7,6 +7,7 @@ use App\Models\ClaimRequest;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Internal\Transformers\ClaimRequestResource;
class ClaimRequestController extends Controller
{
@@ -14,13 +15,27 @@ class ClaimRequestController extends Controller
* Display a listing of the resource.
* @return Renderable
*/
public function index()
public function index(Request $request)
{
$claimRequests = ClaimRequest::query()
->with(['member'])
->when($request->search, function ($q, $search) {
$q->where('code', 'LIKE', "%".$search."%");
})
->when($request->orderBy, function ($q, $orderBy) use ($request) {
if (in_array($orderBy, ['submission_date', 'code'])) {
$q->orderBy($orderBy, $request->order);
}
})
->when(empty($request->orderBy), function ($q) {
$q->orderBy('created_at', 'desc');
})
->when($request->status, function($q, $status) {
$q->where('status', $status);
})
->with(['member', 'files'])
->paginate();
return $claimRequests;
return Helper::paginateResources(ClaimRequestResource::collection($claimRequests));
}
/**

View File

@@ -0,0 +1,33 @@
<?php
namespace Modules\Internal\Transformers;
use Illuminate\Http\Resources\Json\JsonResource;
class ClaimRequestResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
$filesGroupByType = $this->files->mapToGroups(function($file) {
return [$file->type => $file];
});
$data = [
'id' => $this->id,
'code' => $this->code,
'submission_date' => $this->submission_date,
'member' => $this->member,
'status' => $this->status ?? 'unknown',
'service_type' => $this->service_type,
'files_by_type' => $filesGroupByType
];
return $data;
}
}