Various changes

This commit is contained in:
James Cole
2024-12-22 08:27:01 +01:00
parent 303548a5fe
commit f5a755d4fc
6 changed files with 124 additions and 22 deletions

View File

@@ -92,8 +92,8 @@ class Controller extends BaseController
if ($page < 1) {
$page = 1;
}
if ($page > (2 ^ 16)) {
$page = (2 ^ 16);
if ($page > pow(2,16)) {
$page = pow(2,16);
}
$bag->set('page', $page);

View File

@@ -57,13 +57,13 @@ class ShowController extends Controller
public function show(TransactionCurrency $from, TransactionCurrency $to): JsonResponse
{
// $piggies = $this->repository->getAll();
//
$pageSize = $this->parameters->get('limit');
$rates = $this->repository->getRates($from, $to);
$pageSize = $this->parameters->get('limit');
$page = $this->parameters->get('page');
$rates = $this->repository->getRates($from, $to);
$count = $rates->count();
$rates = $rates->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
$paginator = new LengthAwarePaginator($rates, $count, $pageSize, $this->parameters->get('page'));
$rates = $rates->slice(($page - 1) * $pageSize, $pageSize);
$paginator = new LengthAwarePaginator($rates, $count, $pageSize, $page);
$transformer = new ExchangeRateTransformer();
$transformer->setParameters($this->parameters); // give params to transformer

View File

@@ -35,17 +35,19 @@ class ExchangeRateRepository implements ExchangeRateRepositoryInterface
#[\Override] public function getRates(TransactionCurrency $from, TransactionCurrency $to): Collection
{
// orderBy('date', 'DESC')->toRawSql();
return
$this->userGroup->currencyExchangeRates()
->where(function (Builder $q) use ($from, $to) {
$q->where('from_currency_id', $from->id)
->orWhere('to_currency_id', $to->id);
->where(function (Builder $q1) use ($from, $to) {
$q1->where(function (Builder $q) use ($from, $to) {
$q->where('from_currency_id', $from->id)
->where('to_currency_id', $to->id);
})->orWhere(function (Builder $q) use ($from, $to) {
$q->where('from_currency_id', $to->id)
->where('to_currency_id', $from->id);
});
})
->orWhere(function (Builder $q) use ($from, $to) {
$q->where('from_currency_id', $to->id)
->orWhere('to_currency_id', $from->id);
})
->orderBy('date', 'DESC')->get();
->orderBy('date', 'DESC')->get(['currency_exchange_rates.*']);
}
}