Files
portal-api/app/Http/Controllers/Api/Admin/Invoice/InvoiceController.php
T

34 lines
1.1 KiB
PHP

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