refactoring

This commit is contained in:
Dr Masroor Ehsan 2025-01-14 13:22:02 +06:00
parent 2de9bc1388
commit 49c1882a5a
2 changed files with 25 additions and 8 deletions

View File

@ -0,0 +1,18 @@
<?php
namespace App\Http\Controllers;
use App\Models\Study;
class HashedStudyControllerBase extends HashidControllerBase
{
protected ?Study $study = null;
protected function getStudy(): Study
{
$this->decodeKeys();
$this->study = Study::findOrFail($this->key);
return $this->study;
}
}

View File

@ -4,18 +4,17 @@
use App\Domain\ACL\Permission; use App\Domain\ACL\Permission;
use App\Domain\Report\ReportStatus; use App\Domain\Report\ReportStatus;
use App\Http\Controllers\HashidControllerBase; use App\Http\Controllers\HashedStudyControllerBase;
use App\Http\Requests\StudyMetadataUpdateRequest; use App\Http\Requests\StudyMetadataUpdateRequest;
use App\Models\Study; use App\Models\Study;
use App\Services\AuditTrail\Activity; use App\Services\AuditTrail\Activity;
class MetadataController extends HashidControllerBase class MetadataController extends HashedStudyControllerBase
{ {
public function view() public function view()
{ {
abort_unless(auth()->user()->may(Permission::StudyMetadataView), 403); abort_unless(auth()->user()->may(Permission::StudyMetadataView), 403);
$this->decodeKeys(); $study = $this->getStudy();
$study = Study::findOrFail($this->key);
return view('staff.meta.view', compact('study')); return view('staff.meta.view', compact('study'));
} }
@ -23,8 +22,7 @@ public function view()
public function edit() public function edit()
{ {
abort_unless(auth()->user()->may(Permission::StudyMetadataEdit), 403); abort_unless(auth()->user()->may(Permission::StudyMetadataEdit), 403);
$this->decodeKeys(); $study = $this->getStudy();
$study = Study::findOrFail($this->key);
if ($study->isReportReady()) { if ($study->isReportReady()) {
return view('content.pages.notice', [ return view('content.pages.notice', [
@ -41,9 +39,9 @@ public function edit()
public function save(StudyMetadataUpdateRequest $request) public function save(StudyMetadataUpdateRequest $request)
{ {
abort_unless(auth()->user()->may(Permission::StudyMetadataEdit), 403); abort_unless(auth()->user()->may(Permission::StudyMetadataEdit), 403);
$this->decodeKeys(); $study = $this->getStudy();
$study = Study::findOrFail($this->key);
abort_if($study->report_status->value >= ReportStatus::Finalized->value, 403); abort_if($study->report_status->value >= ReportStatus::Finalized->value, 403);
$payload = array_trim_strings($request->validated()); $payload = array_trim_strings($request->validated());
$payload['body_part_examined'] = strtoupper($payload['body_part_examined']); $payload['body_part_examined'] = strtoupper($payload['body_part_examined']);
$payload['patient_sex'] = strtoupper($payload['patient_sex']); $payload['patient_sex'] = strtoupper($payload['patient_sex']);
@ -53,6 +51,7 @@ public function save(StudyMetadataUpdateRequest $request)
$payload['locked_at'] = now(); $payload['locked_at'] = now();
unset($payload['cancel_read']); unset($payload['cancel_read']);
} }
$study->update($payload); $study->update($payload);
audit() audit()
->on($study) ->on($study)