diff --git a/app/Http/Resources/FlowMeasureResource.php b/app/Http/Resources/FlowMeasureResource.php index 75c1efb2..8b942bc4 100644 --- a/app/Http/Resources/FlowMeasureResource.php +++ b/app/Http/Resources/FlowMeasureResource.php @@ -4,6 +4,7 @@ use App\Helpers\ApiDateTimeFormatter; use App\Helpers\FlowMeasureFilterApiFormatter; +use App\Models\Event; use Illuminate\Http\Resources\Json\JsonResource; class FlowMeasureResource extends JsonResource @@ -26,8 +27,8 @@ public function toArray($request): array 'measure' => [ 'type' => $this->type, 'value' => $this->isMandatoryRoute() - ? $this->mandatory_route - : $this->value, + ? $this->mandatory_route + : $this->value, ], 'filters' => $this->formatFilters($this->filters), 'notified_flight_information_regions' => $this->notifiedFlightInformationRegions->pluck('id')->toArray(), @@ -46,18 +47,25 @@ private function formatFilters(array $filters): array ); } - private function formatSingleFilter(string $type, $value): array|int|string + private function formatSingleFilter(string $type, $value): array |int|string { return match ($type) { 'ADES', 'ADEP' => FlowMeasureFilterApiFormatter::formatAirportList($value), - 'level_above', 'level_below' => (int)$value, - 'level' => array_map(fn ($level) => (int)$level, $value), - 'member_event', 'member_not_event' => [ - 'event_id' => (int)$value['event_id'], - 'event_api' => $value['event_api'], - 'event_vatcan' => $value['event_vatcan'], - ], + 'level_above', 'level_below' => (int) $value, + 'level' => array_map(fn ($level) => (int) $level, $value), + 'member_event', 'member_not_event' => $this->formatEventMembershipFilters($value), default => $value }; } + + private function formatEventMembershipFilters($value): array + { + $event = Event::withTrashed()->where('id', $value)->first(); + + return [ + 'event_id' => $event->id, + 'event_api' => null, + 'event_vatcan' => $event->vatcan_code, + ]; + } } diff --git a/database/factories/FlowMeasureFactory.php b/database/factories/FlowMeasureFactory.php index dc611d75..0942e40b 100644 --- a/database/factories/FlowMeasureFactory.php +++ b/database/factories/FlowMeasureFactory.php @@ -183,7 +183,7 @@ public function withMemberEvent(Event $event): static 'type' => 'member_event', 'value' => [ 'event_id' => (string) $event->id, - 'event_api' => 'testapicode', + 'event_api' => null, 'event_vatcan' => 'testvatcancode', ] ] @@ -197,7 +197,7 @@ public function withMemberNotEvent(Event $event): static 'type' => 'member_not_event', 'value' => [ 'event_id' => (string) $event->id, - 'event_api' => 'testapicode', + 'event_api' => null, 'event_vatcan' => 'testvatcancode', ] ] diff --git a/tests/Api/FlowMeasureTest.php b/tests/Api/FlowMeasureTest.php index 4e46de8f..6148742f 100644 --- a/tests/Api/FlowMeasureTest.php +++ b/tests/Api/FlowMeasureTest.php @@ -295,7 +295,9 @@ public function testItReturnsAFlowMeasureWithALevelFilter() public function testItReturnsAFlowMeasureWithAMemberEventFilter() { - $event = Event::factory()->create(); + $event = Event::factory() + ->withVatcanCode() + ->create(); $flowMeasure = FlowMeasure::factory() ->withMemberEvent($event) ->create(); @@ -326,8 +328,8 @@ public function testItReturnsAFlowMeasureWithAMemberEventFilter() 'type' => 'member_event', 'value' => [ 'event_id' => $event->id, - 'event_api' => 'testapicode', - 'event_vatcan' => 'testvatcancode', + 'event_api' => null, + 'event_vatcan' => $event->vatcan_code, ], ], ], @@ -338,7 +340,9 @@ public function testItReturnsAFlowMeasureWithAMemberEventFilter() public function testItReturnsAFlowMeasureWithAMemberNotEventFilter() { - $event = Event::factory()->create(); + $event = Event::factory() + ->withVatcanCode() + ->create(); $flowMeasure = FlowMeasure::factory() ->withMemberNotEvent($event) ->create(); @@ -369,8 +373,8 @@ public function testItReturnsAFlowMeasureWithAMemberNotEventFilter() 'type' => 'member_not_event', 'value' => [ 'event_id' => $event->id, - 'event_api' => 'testapicode', - 'event_vatcan' => 'testvatcancode', + 'event_api' => null, + 'event_vatcan' => $event->vatcan_code, ], ], ],