From aa0f2caaa38863bbe96ffe34aa102e55afe73a85 Mon Sep 17 00:00:00 2001 From: Philipp Lang Date: Sun, 7 May 2023 21:54:00 +0200 Subject: [PATCH] update search --- src/Api.php | 4 ++-- src/Fakes/SearchFake.php | 4 ++-- tests/Factories/MemberEntryRequestFactory.php | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Api.php b/src/Api.php index 1802232..0001a34 100644 --- a/src/Api.php +++ b/src/Api.php @@ -87,13 +87,13 @@ class Api /** * @param array $payload * - * @return Collection + * @return LengthAwarePaginator */ public function pageSearch(array $payload, int $page, int $perPage): LengthAwarePaginator { $start = ($page - 1) * $perPage; $response = $this->http()->get($this->url.'/ica/rest/nami/search-multi/result-list?searchedValues='.rawurlencode(json_encode((object) $payload) ?: '{}').'&page='.$page.'&start='.$start.'&limit='.$perPage); - $items = collect($response->json()['data'])->map(fn ($member) => MemberEntry::from($member)); + $items = array_map(fn ($member) => MemberEntry::from($member), $response->json()['data']); return new LengthAwarePaginator($items, $response->json('totalEntries'), $perPage, $page, []); } diff --git a/src/Fakes/SearchFake.php b/src/Fakes/SearchFake.php index c3a7083..47507c8 100644 --- a/src/Fakes/SearchFake.php +++ b/src/Fakes/SearchFake.php @@ -24,13 +24,13 @@ class SearchFake extends Fake { Http::fake(function ($request) use ($page, $start, $data, $perPage) { if (Str::endsWith($request->url(), '&page='.$page.'&start='.$start.'&limit='.$perPage)) { - return $this->collection(collect($data)->map(fn ($member) => $member)); + return $this->collection(collect($data)); } }); } /** - * @param array $data + * @param array $data */ public function assertFetched(int $page, int $start, int $perPage, array $data): void { diff --git a/tests/Factories/MemberEntryRequestFactory.php b/tests/Factories/MemberEntryRequestFactory.php index 02bc175..cbef64d 100644 --- a/tests/Factories/MemberEntryRequestFactory.php +++ b/tests/Factories/MemberEntryRequestFactory.php @@ -14,9 +14,17 @@ class MemberEntryRequestFactory extends RequestFactory 'lastname' => $this->faker->lastName(), 'groupId' => $this->faker->numberBetween(100, 200), 'id' => $this->faker->numberBetween(100, 200), + 'agegroup' => $this->faker->randomElement(['Wölfling', 'Juffi', 'Pfadi', 'Rover']), ]; } + public function noFirstname(): self + { + return $this->state([ + 'firstname' => null, + ]); + } + /** * @param array $attributes */