* Discord notifications for events #433 * Style fixes * Check for blank webhook urls and disable * Cleanup items after review * Changes and fixes * Style fixes * Don't load env for testing * Fix status text * Refactor saving fields/fares so events get the latest data * Cleanup * Style fixes
This commit is contained in:
@@ -23,10 +23,10 @@ use App\Models\Enums\PirepFieldSource;
|
||||
use App\Models\Enums\PirepSource;
|
||||
use App\Models\Pirep;
|
||||
use App\Models\PirepComment;
|
||||
use App\Repositories\AcarsRepository;
|
||||
use App\Models\PirepFare;
|
||||
use App\Models\PirepFieldValue;
|
||||
use App\Repositories\JournalRepository;
|
||||
use App\Repositories\PirepRepository;
|
||||
use App\Services\FareService;
|
||||
use App\Services\Finance\PirepFinanceService;
|
||||
use App\Services\PirepService;
|
||||
use App\Services\UserService;
|
||||
@@ -37,8 +37,6 @@ use Illuminate\Support\Facades\Log;
|
||||
|
||||
class PirepController extends Controller
|
||||
{
|
||||
private $acarsRepo;
|
||||
private $fareSvc;
|
||||
private $financeSvc;
|
||||
private $journalRepo;
|
||||
private $pirepRepo;
|
||||
@@ -46,8 +44,6 @@ class PirepController extends Controller
|
||||
private $userSvc;
|
||||
|
||||
/**
|
||||
* @param AcarsRepository $acarsRepo
|
||||
* @param FareService $fareSvc
|
||||
* @param PirepFinanceService $financeSvc
|
||||
* @param JournalRepository $journalRepo
|
||||
* @param PirepRepository $pirepRepo
|
||||
@@ -55,16 +51,12 @@ class PirepController extends Controller
|
||||
* @param UserService $userSvc
|
||||
*/
|
||||
public function __construct(
|
||||
AcarsRepository $acarsRepo,
|
||||
FareService $fareSvc,
|
||||
PirepFinanceService $financeSvc,
|
||||
JournalRepository $journalRepo,
|
||||
PirepRepository $pirepRepo,
|
||||
PirepService $pirepSvc,
|
||||
UserService $userSvc
|
||||
) {
|
||||
$this->acarsRepo = $acarsRepo;
|
||||
$this->fareSvc = $fareSvc;
|
||||
$this->financeSvc = $financeSvc;
|
||||
$this->journalRepo = $journalRepo;
|
||||
$this->pirepRepo = $pirepRepo;
|
||||
@@ -101,7 +93,7 @@ class PirepController extends Controller
|
||||
/**
|
||||
* Check if a PIREP is cancelled
|
||||
*
|
||||
* @param $pirep
|
||||
* @param Pirep $pirep
|
||||
*
|
||||
* @throws \App\Exceptions\PirepCancelled
|
||||
*/
|
||||
@@ -113,50 +105,52 @@ class PirepController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $pirep
|
||||
* @param Request $request
|
||||
*
|
||||
* @return PirepFieldValue[]
|
||||
*/
|
||||
protected function updateFields($pirep, Request $request)
|
||||
protected function getFields(Request $request): ?array
|
||||
{
|
||||
if (!$request->filled('fields')) {
|
||||
return;
|
||||
return [];
|
||||
}
|
||||
|
||||
$pirep_fields = [];
|
||||
foreach ($request->input('fields') as $field_name => $field_value) {
|
||||
$pirep_fields[] = [
|
||||
$pirep_fields[] = new PirepFieldValue([
|
||||
'name' => $field_name,
|
||||
'value' => $field_value,
|
||||
'source' => PirepFieldSource::ACARS,
|
||||
];
|
||||
]);
|
||||
}
|
||||
|
||||
$this->pirepSvc->updateCustomFields($pirep->id, $pirep_fields);
|
||||
return $pirep_fields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the fares
|
||||
*
|
||||
* @param $pirep
|
||||
* @param Request $request
|
||||
*
|
||||
* @throws \Exception
|
||||
*
|
||||
* @return PirepFare[]
|
||||
*/
|
||||
protected function updateFares($pirep, Request $request)
|
||||
protected function getFares(Request $request): ?array
|
||||
{
|
||||
if (!$request->filled('fares')) {
|
||||
return;
|
||||
return [];
|
||||
}
|
||||
|
||||
$fares = [];
|
||||
foreach ($request->post('fares') as $fare) {
|
||||
$fares[] = [
|
||||
$fares[] = new PirepFare([
|
||||
'fare_id' => $fare['id'],
|
||||
'count' => $fare['count'],
|
||||
];
|
||||
]);
|
||||
}
|
||||
|
||||
$this->fareSvc->saveForPirep($pirep, $fares);
|
||||
return $fares;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -210,14 +204,13 @@ class PirepController extends Controller
|
||||
$attrs = $this->parsePirep($request);
|
||||
$attrs['source'] = PirepSource::ACARS;
|
||||
|
||||
$pirep = $this->pirepSvc->prefile($user, $attrs);
|
||||
$fields = $this->getFields($request);
|
||||
$fares = $this->getFares($request);
|
||||
$pirep = $this->pirepSvc->prefile($user, $attrs, $fields, $fares);
|
||||
|
||||
Log::info('PIREP PREFILED');
|
||||
Log::info($pirep->id);
|
||||
|
||||
$this->updateFields($pirep, $request);
|
||||
$this->updateFares($pirep, $request);
|
||||
|
||||
return $this->get($pirep->id);
|
||||
}
|
||||
|
||||
@@ -258,9 +251,9 @@ class PirepController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$pirep = $this->pirepRepo->update($attrs, $pirep_id);
|
||||
$this->updateFields($pirep, $request);
|
||||
$this->updateFares($pirep, $request);
|
||||
$fields = $this->getFields($request);
|
||||
$fares = $this->getFares($request);
|
||||
$pirep = $this->pirepSvc->update($pirep_id, $attrs, $fields, $fares);
|
||||
|
||||
event(new PirepUpdated($pirep));
|
||||
|
||||
@@ -303,9 +296,9 @@ class PirepController extends Controller
|
||||
}
|
||||
|
||||
try {
|
||||
$pirep = $this->pirepSvc->file($pirep, $attrs);
|
||||
$this->updateFields($pirep, $request);
|
||||
$this->updateFares($pirep, $request);
|
||||
$fields = $this->getFields($request);
|
||||
$fares = $this->getFares($request);
|
||||
$pirep = $this->pirepSvc->file($pirep, $attrs, $fields, $fares);
|
||||
} catch (\Exception $e) {
|
||||
Log::error($e);
|
||||
|
||||
@@ -411,7 +404,8 @@ class PirepController extends Controller
|
||||
$pirep = Pirep::find($pirep_id);
|
||||
$this->checkCancelled($pirep);
|
||||
|
||||
$this->updateFields($pirep, $request);
|
||||
$fields = $this->getFields($request);
|
||||
$this->pirepSvc->updateCustomFields($pirep_id, $fields);
|
||||
|
||||
return new PirepFieldCollection($pirep->fields);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user