update search

This commit is contained in:
Philipp Lang 2023-05-07 21:54:00 +02:00
parent b07369bcf4
commit aa0f2caaa3
3 changed files with 12 additions and 4 deletions

View File

@ -87,13 +87,13 @@ class Api
/**
* @param array<string, mixed> $payload
*
* @return Collection<int, MemberEntry>
* @return LengthAwarePaginator<MemberEntry>
*/
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, []);
}

View File

@ -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<int, MemberEntry> $data
* @param array<string, string|int> $data
*/
public function assertFetched(int $page, int $start, int $perPage, array $data): void
{

View File

@ -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<string, mixed> $attributes
*/