diff --git a/Modules/Client/Http/Controllers/Api/DailyMonitoringController.php b/Modules/Client/Http/Controllers/Api/DailyMonitoringController.php index 331611fd..c441e6fc 100755 --- a/Modules/Client/Http/Controllers/Api/DailyMonitoringController.php +++ b/Modules/Client/Http/Controllers/Api/DailyMonitoringController.php @@ -5,6 +5,7 @@ use App\Helpers\Helper; use App\Models\DailyMonitoring; use App\Models\RequestDailyMonitoring; use App\Models\MedicalPlan; +use App\Models\File; use DB; use Exception; use Illuminate\Http\Request; @@ -12,7 +13,6 @@ use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\File as Files; use Modules\Internal\Transformers\DailyMonitoringResource; -use App\Models\File; use Carbon\Carbon; @@ -281,19 +281,18 @@ class DailyMonitoringController extends Controller // } // } foreach ($request->confirmation_medical_leter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('confirmation-medical-letter', $request->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $request->id, 'type' => 'confirmation-medical-letter', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); } @@ -312,19 +311,18 @@ class DailyMonitoringController extends Controller // } // } foreach ($request->medical_action_letter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('medical-action-letter', $request->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $request->id, 'type' => 'medical-action-letter', - 'name' => $name, + 'name' => $fileData['name'], 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); } @@ -343,19 +341,18 @@ class DailyMonitoringController extends Controller // } // } foreach ($request->result as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $orignalName = $file->getClientOriginalName(); - $fileName = $name . '.' . $extension; - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('laboratorium-result', $request->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $request->id, 'type' => 'laboratorium-result', - 'name' => $name, + 'name' => $fileData['name'], 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); @@ -577,38 +574,36 @@ class DailyMonitoringController extends Controller // insert file result if ($request->confirmation_medical_leter){ foreach ($request->confirmation_medical_leter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('confirmation-medical-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'confirmation-medical-letter', - 'name' => $name, + 'name' => $fileData['name'], 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); } } if ($request->medical_action_letter){ foreach ($request->medical_action_letter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('medical-action-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'medical-action-letter', - 'name' => $name, + 'name' => $fileData['name'], 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); @@ -616,19 +611,18 @@ class DailyMonitoringController extends Controller } if ($request->result){ foreach ($request->result as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $orignalName = $file->getClientOriginalName(); - $fileName = $name . '.' . $extension; - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('laboratorium-result', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'laboratorium-result', - 'name' => $name, + 'name' => $fileData['name'], 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); @@ -752,38 +746,36 @@ class DailyMonitoringController extends Controller // insert file result if ($request->confirmation_medical_leter){ foreach ($request->confirmation_medical_leter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('confirmation-medical-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'confirmation-medical-letter', - 'name' => $name, + 'name' => $fileData['name'], 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); } } if ($request->medical_action_letter){ foreach ($request->medical_action_letter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('medical-action-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'medical-action-letter', - 'name' => $name, + 'name' => $fileData['name'], 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); @@ -791,19 +783,19 @@ class DailyMonitoringController extends Controller } if ($request->result){ foreach ($request->result as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $orignalName = $file->getClientOriginalName(); - $fileName = $name . '.' . $extension; - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('laboratorium-result', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'laboratorium-result', - 'name' => $name, + 'name' => $fileData['name'], 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, + ]); // $file->storeAs($this->path_for_store, $fileName); diff --git a/Modules/Internal/Http/Controllers/Api/DailyMonitoringController.php b/Modules/Internal/Http/Controllers/Api/DailyMonitoringController.php index 4465a747..10cccd96 100755 --- a/Modules/Internal/Http/Controllers/Api/DailyMonitoringController.php +++ b/Modules/Internal/Http/Controllers/Api/DailyMonitoringController.php @@ -280,19 +280,18 @@ class DailyMonitoringController extends Controller // } // } foreach ($request->confirmation_medical_leter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('confirmation-medical-letter', $request->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $request->id, 'type' => 'confirmation-medical-letter', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); } @@ -311,19 +310,18 @@ class DailyMonitoringController extends Controller // } // } foreach ($request->medical_action_letter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('confirmation-medical-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $request->id, - 'type' => 'medical-action-letter', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'type' => 'confirmation-medical-letter', + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); } @@ -342,19 +340,18 @@ class DailyMonitoringController extends Controller // } // } foreach ($request->result as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $orignalName = $file->getClientOriginalName(); - $fileName = $name . '.' . $extension; - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('laboratorium-result', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $request->id, 'type' => 'laboratorium-result', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); @@ -576,38 +573,36 @@ class DailyMonitoringController extends Controller // insert file result if ($request->confirmation_medical_leter){ foreach ($request->confirmation_medical_leter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('confirmation-medical-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'confirmation-medical-letter', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); } } if ($request->medical_action_letter){ foreach ($request->medical_action_letter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('medical-action-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'medical-action-letter', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); @@ -615,19 +610,18 @@ class DailyMonitoringController extends Controller } if ($request->result){ foreach ($request->result as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $orignalName = $file->getClientOriginalName(); - $fileName = $name . '.' . $extension; - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('laboratorium-result', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'laboratorium-result', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); @@ -751,38 +745,36 @@ class DailyMonitoringController extends Controller // insert file result if ($request->confirmation_medical_leter){ foreach ($request->confirmation_medical_leter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('confirmation-medical-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'confirmation-medical-letter', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); } } if ($request->medical_action_letter){ foreach ($request->medical_action_letter as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - $orignalName = $file->getClientOriginalName(); - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('medical-action-letter', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'medical-action-letter', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); @@ -790,19 +782,18 @@ class DailyMonitoringController extends Controller } if ($request->result){ foreach ($request->result as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $orignalName = $file->getClientOriginalName(); - $fileName = $name . '.' . $extension; - $path = $file->storeAs($this->path_for_store, $fileName); + $fileData = File::storeFile('laboratorium-result', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'laboratorium-result', - 'name' => $name, - 'original_name' => $orignalName, - 'extension' => $extension, - 'path' => $path, + 'name' => $fileData['name'], + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, ]); // $file->storeAs($this->path_for_store, $fileName); diff --git a/Modules/Internal/Http/Controllers/Api/LaboratoriumResultController.php b/Modules/Internal/Http/Controllers/Api/LaboratoriumResultController.php index 81239f6e..e6f2b232 100755 --- a/Modules/Internal/Http/Controllers/Api/LaboratoriumResultController.php +++ b/Modules/Internal/Http/Controllers/Api/LaboratoriumResultController.php @@ -110,18 +110,19 @@ class LaboratoriumResultController extends Controller // insert file result foreach ($request->lab_result_file as $file) { - $name = 'labresult-' . uniqid(); - $extension= $file->getClientOriginalExtension(); - $fileName = $name . '.' . $extension; - + $fileData = File::storeFile('laboratorium-result', $db_response->id, $file); File::create([ 'fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $db_response->id, 'type' => 'laboratorium-result', - 'name' => $name, - 'original_name' => $fileName, - 'extension' => $extension, - 'path' => '', + 'name' => $fileData['name'], + 'original_name' => $orignalName, + 'extension' => $file->getClientOriginalName(), + 'source' => env('FILESYSTEM_DISK'), + 'path' => $fileData['path'], + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, + ]); $file->storeAs($this->path_for_store, $fileName); diff --git a/app/Models/RequestDailyMonitoring.php b/app/Models/RequestDailyMonitoring.php index 06757c77..0ffa1afc 100755 --- a/app/Models/RequestDailyMonitoring.php +++ b/app/Models/RequestDailyMonitoring.php @@ -5,6 +5,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Auth; use DB; @@ -111,16 +112,36 @@ class RequestDailyMonitoring extends Model 'fileable_id' => $this->attributes['id'], 'deleted_at' => null, ])->get(); - + foreach ($document as $row) { + // Jika path kosong, kembalikan null + if (!$row->path) { + return null; + } + + // Cek nilai 'source'. Jika 's3', gunakan disk S3. + // Selain itu (termasuk null atau 'local'), gunakan disk 'public'. + if ($row->source === 's3') { + try { + $path = Storage::disk('s3')->temporaryUrl( + $row->path, + now()->addMinutes(60) // expired 1 jam + ); + } catch (\Exception $e) { + $path = Storage::disk('s3')->url($row->path); // fallback kalau public + } + } else { + $path = Storage::disk('public')->url($row->path); + } + $arr_document[] = [ 'id' => $row->id, 'file_name' => $row->original_name, - 'path' => env('APP_URL') . '/storage/lab_result/' . $row->name .'.'. $row->extension, + // 'path' => env('APP_URL') . '/storage/lab_result/' . $row->name .'.'. $row->extension, + 'path' => $path, 'type' => $row->type, ]; } - return $arr_document; }