finally fixed serialization of conversions #189

This commit is contained in:
Nabeel Shahzad 2018-02-10 22:49:08 -06:00
parent 0700c96901
commit d5c2d25c74
6 changed files with 16 additions and 7 deletions

View File

@ -12,7 +12,7 @@ class Flight extends Resource
$flight = parent::toArray($request); $flight = parent::toArray($request);
// Return multiple measures so the client can pick what they want // Return multiple measures so the client can pick what they want
if(filled($this->distance) && $this->distance instanceof Distance) { if($this->distance instanceof Distance) {
$flight['distance'] = $this->distance->toObject(); $flight['distance'] = $this->distance->toObject();
} }

View File

@ -17,11 +17,11 @@ class Pirep extends Resource
{ {
$pirep = parent::toArray($request); $pirep = parent::toArray($request);
if (filled($this->distance) && $this->distance instanceof Distance) { if ($this->distance instanceof Distance) {
$pirep['distance'] = $this->distance->toObject(); $pirep['distance'] = $this->distance->toObject();
} }
if (filled($this->planned_distance) && $this->planned_distance instanceof Distance) { if ($this->planned_distance instanceof Distance) {
$pirep['planned_distance'] = $this->planned_distance->toObject(); $pirep['planned_distance'] = $this->planned_distance->toObject();
} }

View File

@ -79,6 +79,10 @@ class Flight extends BaseModel
*/ */
public function getDistanceAttribute() public function getDistanceAttribute()
{ {
if (!array_key_exists('distance', $this->attributes)) {
return null;
}
try { try {
$distance = (float) $this->attributes['distance']; $distance = (float) $this->attributes['distance'];
return new Distance($distance, Distance::STORAGE_UNIT); return new Distance($distance, Distance::STORAGE_UNIT);

View File

@ -109,6 +109,10 @@ class Pirep extends BaseModel
*/ */
public function getDistanceAttribute() public function getDistanceAttribute()
{ {
if(!array_key_exists('distance', $this->attributes)) {
return null;
}
try { try {
$distance = (float) $this->attributes['distance']; $distance = (float) $this->attributes['distance'];
return new Distance($distance, Distance::STORAGE_UNIT); return new Distance($distance, Distance::STORAGE_UNIT);
@ -138,6 +142,10 @@ class Pirep extends BaseModel
*/ */
public function getPlannedDistanceAttribute() public function getPlannedDistanceAttribute()
{ {
if (!array_key_exists('planned_distance', $this->attributes)) {
return null;
}
try { try {
$distance = (float) $this->attributes['planned_distance']; $distance = (float) $this->attributes['planned_distance'];
return new Distance($distance, Distance::STORAGE_UNIT); return new Distance($distance, Distance::STORAGE_UNIT);

View File

@ -134,7 +134,7 @@ class AcarsTest extends TestCase
$this->assertEquals('custom_field', $pirep['fields'][0]['name']); $this->assertEquals('custom_field', $pirep['fields'][0]['name']);
$this->assertEquals('custom_value', $pirep['fields'][0]['value']); $this->assertEquals('custom_value', $pirep['fields'][0]['value']);
$this->assertHasKeys($pirep['distance'], ['mi', 'nmi', 'km']); $this->assertHasKeys($pirep['planned_distance'], ['mi', 'nmi', 'km']);
/** /**
* Update the custom field * Update the custom field

View File

@ -9,9 +9,6 @@ class UtilsTest extends TestCase
public function testSecondsToTimeParts() public function testSecondsToTimeParts()
{ {
$t = new \PhpUnitsOfMeasure\PhysicalQuantity\Time(65, 'm');
echo $t->toUnit('hours');
$t = Utils::secondsToTimeParts(3600); $t = Utils::secondsToTimeParts(3600);
$this->assertEquals(['h' => 1, 'm' => 0, 's' => 0], $t); $this->assertEquals(['h' => 1, 'm' => 0, 's' => 0], $t);