Files
portal-api/app/Http/Controllers/Api/Admin/Customer/CustomerController.php
T

34 lines
1.1 KiB
PHP

<?php
namespace App\Http\Controllers\Api\Admin\Customer;
use App\Http\Controllers\Controller;
use App\Http\Resources\Api\Admin\CustomerResource;
use App\Repositories\Admin\Customer\AdminCustomerRepositoryInterface;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CustomerController extends Controller
{
public function __construct(
private readonly AdminCustomerRepositoryInterface $customers,
) {}
public function index(Request $request): JsonResponse
{
$perPage = min((int) $request->get('per_page', 15), 100);
$paginator = $this->customers->paginate($request->only('filter', 'status'), $perPage);
return response()->json([
'error' => false,
'data' => [
'items' => CustomerResource::collection($paginator->items()),
'total' => $paginator->total(),
'per_page' => $paginator->perPage(),
'current_page' => $paginator->currentPage(),
'last_page' => $paginator->lastPage(),
],
]);
}
}