diff --git a/app/Http/Controllers/Api/CountryController.php b/app/Http/Controllers/Api/CountryController.php index 9cc24a1..51ee82d 100644 --- a/app/Http/Controllers/Api/CountryController.php +++ b/app/Http/Controllers/Api/CountryController.php @@ -33,10 +33,12 @@ class CountryController extends Controller ) ->when( $request->exists('selected'), - fn (Builder $query) => $query - ->whereIn('code', $request->input('selected', [])) - ->orWhereIn('id', - $request->input('selected', [])), + function (Builder $query) use ($request) { + $selected = $request->input('selected', []); + + $query->whereIn('code', $selected) + ->orWhereIn('id', array_filter($selected, 'is_numeric')); + }, fn (Builder $query) => $query->limit(10), ) ->get() diff --git a/tests/Feature/Api/CountryControllerTest.php b/tests/Feature/Api/CountryControllerTest.php new file mode 100644 index 0000000..7018c94 --- /dev/null +++ b/tests/Feature/Api/CountryControllerTest.php @@ -0,0 +1,13 @@ +create(['code' => 'CH']); + + $response = $this->getJson('/api/countries?'.http_build_query([ + 'selected' => ['CH', 'de', '1'], + ])); + + $response->assertSuccessful(); +});