API: Flight fields are an array when empty #618 (#619)

* Ensure 'fields' field is return as an object for flights #618
* Eager loading for flight fields
This commit is contained in:
Nabeel S 2020-03-04 18:14:03 -05:00 committed by GitHub
parent 174b602d7c
commit 9ed2e3f9f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 4 deletions

View File

@ -88,7 +88,15 @@ class FlightController extends Controller
$this->flightRepo->pushCriteria(new WhereCriteria($request, $where));
$this->flightRepo->pushCriteria(new RequestCriteria($request));
$flights = $this->flightRepo->paginate();
$flights = $this->flightRepo
->with([
'airline',
'subfleets',
'subfleets.aircraft',
'subfleets.fares',
'field_values',
])
->paginate();
} catch (RepositoryException $e) {
return response($e, 503);
}

View File

@ -3,18 +3,25 @@
namespace App\Http\Resources;
use App\Support\Units\Distance;
use stdClass;
class Flight extends Response
{
/**
* Set the fields on the flight object
*
* @return array
* @mixin \App\Models\Flight
*/
private function setFields()
{
/** @var \Illuminate\Support\Collection $field_values */
$field_values = $this->field_values;
if (empty($field_values) || $field_values->count() === 0) {
return new stdClass();
}
$fields = [];
foreach ($this->field_values as $field) {
foreach ($field_values as $field) {
$fields[$field->name] = $field->value;
}

View File

@ -235,7 +235,7 @@
<div class="checkbox">
<label class="checkbox-inline">
{{ Form::label('active', 'Active:') }}
{{ Form::hidden('active', 0, false) }}
<input name="active" type="hidden" value="0" />
{{ Form::checkbox('active') }}
</label>
</div>