Fix aircraft retrieval for Simbrief (#1089)
* Fix full aircraft retrieval for simbriefs * F off StyleCI
This commit is contained in:
@@ -9,7 +9,7 @@ class Bid extends Resource
|
||||
public function toArray($request)
|
||||
{
|
||||
$res = parent::toArray($request);
|
||||
$res['flight'] = new Flight($this->flight);
|
||||
$res['flight'] = new BidFlight($this->flight);
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
36
app/Http/Resources/BidFlight.php
Normal file
36
app/Http/Resources/BidFlight.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use App\Http\Resources\SimBrief as SimbriefResource;
|
||||
|
||||
/**
|
||||
* @mixin \App\Models\Flight
|
||||
*/
|
||||
class BidFlight extends Flight
|
||||
{
|
||||
/**
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @throws \PhpUnitsOfMeasure\Exception\NonNumericValue
|
||||
* @throws \PhpUnitsOfMeasure\Exception\NonStringUnitName
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$res = parent::toArray($request);
|
||||
|
||||
if ($this->whenLoaded('simbrief')) {
|
||||
unset($res['subfleets']);
|
||||
$res['simbrief'] = new SimbriefResource($this->simbrief);
|
||||
} else {
|
||||
unset($res['simbrief']);
|
||||
$res['subfleets'] = Subfleet::collection($this->whenLoaded('subfleets'));
|
||||
}
|
||||
|
||||
$res['fields'] = $this->setFields();
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
41
app/Http/Resources/BidSubfleet.php
Normal file
41
app/Http/Resources/BidSubfleet.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
class BidSubfleet extends Subfleet
|
||||
{
|
||||
protected $aircraft;
|
||||
protected $fares;
|
||||
|
||||
public function __construct($resource, $aircraft, $fares)
|
||||
{
|
||||
parent::__construct($resource);
|
||||
|
||||
$this->aircraft = $aircraft;
|
||||
$this->fares = $fares;
|
||||
}
|
||||
|
||||
public function toArray($request)
|
||||
{
|
||||
$res = [];
|
||||
$res['airline_id'] = $this->airline_id;
|
||||
$res['hub_id'] = $this->hub_id;
|
||||
$res['type'] = $this->type;
|
||||
$res['simbrief_type'] = $this->simbrief_type;
|
||||
$res['name'] = $this->name;
|
||||
$res['fuel_type'] = $this->fuel_type;
|
||||
$res['cost_block_hour'] = $this->cost_block_hour;
|
||||
$res['cost_delay_minute'] = $this->cost_delay_minute;
|
||||
$res['ground_handling_multiplier'] = $this->ground_handling_multiplier;
|
||||
$res['cargo_capacity'] = $this->cargo_capacity;
|
||||
$res['fuel_capacity'] = $this->fuel_capacity;
|
||||
$res['gross_weight'] = $this->gross_weight;
|
||||
|
||||
$res['fares'] = Fare::collection($this->fares);
|
||||
|
||||
// There should only be one aircraft tied to a bid subfleet, wrap in a collection
|
||||
$res['aircraft'] = Aircraft::collection([$this->aircraft]);
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ class Flight extends Resource
|
||||
/**
|
||||
* Set the fields on the flight object
|
||||
*/
|
||||
private function setFields()
|
||||
protected function setFields()
|
||||
{
|
||||
/** @var \Illuminate\Support\Collection $field_values */
|
||||
$return_values = new stdClass();
|
||||
|
||||
@@ -12,27 +12,27 @@ class SimBrief extends Resource
|
||||
public function toArray($request)
|
||||
{
|
||||
$data = [
|
||||
'id' => $this->id,
|
||||
'url' => url(route('api.flights.briefing', ['id' => $this->id])),
|
||||
'id' => $this->id,
|
||||
'aircraft_id' => $this->aircraft_id,
|
||||
'url' => url(route('api.flights.briefing', ['id' => $this->id])),
|
||||
];
|
||||
|
||||
$fares = [];
|
||||
|
||||
try {
|
||||
if (!empty($this->fare_data)) {
|
||||
$fares = [];
|
||||
$fare_data = json_decode($this->fare_data, true);
|
||||
foreach ($fare_data as $fare) {
|
||||
$fares[] = new \App\Models\Fare($fare);
|
||||
}
|
||||
|
||||
$this->aircraft->subfleet->fares = collect($fares);
|
||||
$fares = collect($fares);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
// Invalid fare data
|
||||
}
|
||||
|
||||
if ($this->aircraft->subfleet) {
|
||||
$data['subfleet'] = new Subfleet($this->aircraft->subfleet);
|
||||
}
|
||||
$data['subfleet'] = new BidSubfleet($this->aircraft->subfleet, $this->aircraft, $fares);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user