From d1d243ef0691edf6a1138c120c54c149d5c6f3da Mon Sep 17 00:00:00 2001 From: Nabeel Shahzad Date: Tue, 31 Mar 2020 17:26:55 -0400 Subject: [PATCH] Update response objects --- app/Http/Controllers/Api/AcarsController.php | 12 ++++++++---- app/Http/Resources/Acars.php | 5 +++++ app/Http/Resources/Pirep.php | 4 ++-- app/Models/Acars.php | 10 ++++------ 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/Api/AcarsController.php b/app/Http/Controllers/Api/AcarsController.php index 048f607e..d45bb62f 100644 --- a/app/Http/Controllers/Api/AcarsController.php +++ b/app/Http/Controllers/Api/AcarsController.php @@ -119,11 +119,15 @@ class AcarsController extends Controller public function acars_get($id, Request $request) { $this->pirepRepo->find($id); + $acars = Acars::with(['pirep']) + ->where([ + 'pirep_id' => $id, + 'type' => AcarsType::FLIGHT_PATH, + ]) + ->orderBy('sim_time', 'asc') + ->get(); - return new AcarsRouteResource(Acars::where([ - 'pirep_id' => $id, - 'type' => AcarsType::FLIGHT_PATH, - ])->orderBy('sim_time', 'asc')->get()); + return new AcarsRouteResource($acars); } /** diff --git a/app/Http/Resources/Acars.php b/app/Http/Resources/Acars.php index 7fa9ceca..7ef52543 100644 --- a/app/Http/Resources/Acars.php +++ b/app/Http/Resources/Acars.php @@ -6,6 +6,9 @@ use App\Contracts\Resource; use App\Support\Units\Distance; use App\Support\Units\Fuel; +/** + * @mixin \App\Models\Acars + */ class Acars extends Resource { /** @@ -31,6 +34,8 @@ class Acars extends Resource $fuel = new Fuel($fuel, config('phpvms.internal_units.fuel')); $res['fuel'] = $fuel->getResponseUnits(); + $res['pirep'] = Pirep::make($this->whenLoaded('pirep')); + return $res; } } diff --git a/app/Http/Resources/Pirep.php b/app/Http/Resources/Pirep.php index 18d23aa2..ab22c247 100644 --- a/app/Http/Resources/Pirep.php +++ b/app/Http/Resources/Pirep.php @@ -67,8 +67,8 @@ class Pirep extends Resource $res['dpt_airport'] = new Airport($this->dpt_airport); $res['arr_airport'] = new Airport($this->arr_airport); - $res['position'] = new Acars($this->position); - $res['comments'] = PirepComment::collection($this->comments); + $res['position'] = Acars::make($this->whenLoaded('position')); + $res['comments'] = PirepComment::make($this->whenLoaded('comments')); $res['user'] = [ 'id' => $this->user->id, 'name' => $this->user->name, diff --git a/app/Models/Acars.php b/app/Models/Acars.php index d81048d8..bf792980 100644 --- a/app/Models/Acars.php +++ b/app/Models/Acars.php @@ -8,16 +8,14 @@ use App\Support\Units\Distance; use App\Support\Units\Fuel; /** - * Class Acars - * - * @param string id * + * @property string id * @property string pirep_id * @property int type * @property string name - * @property float lat - * @property float lon - * @property float altitude + * @property float lat + * @property float lon + * @property float altitude * @property int gs * @property int heading * @property int order