32 lines
1.1 KiB
PHP
32 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Modules\Countries\Http\Controllers\Api;
|
|
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\Countries\Models\Country;
|
|
|
|
class CountriesApiController extends Controller
|
|
{
|
|
public function index(Request $request): JsonResponse
|
|
{
|
|
$activeOnly = $request->boolean('active_only', false);
|
|
$countries = Country::query()->when($activeOnly, fn ($query) => $query->where('is_active', true))->ordered()
|
|
->get(['alpha2', 'alpha3', 'numeric', 'name', 'official_name', 'common_name', 'display_name', 'flag_emoji', 'is_active']);
|
|
return response()->json(['data' => $countries]);
|
|
}
|
|
|
|
public function active(): JsonResponse
|
|
{
|
|
$countries = Country::query()->active()->ordered()
|
|
->get(['alpha2', 'alpha3', 'numeric', 'name', 'display_name', 'common_name', 'flag_emoji']);
|
|
return response()->json(['data' => $countries]);
|
|
}
|
|
|
|
public function show(Country $country): JsonResponse
|
|
{
|
|
return response()->json(['data' => $country]);
|
|
}
|
|
}
|