Skip to content

Commit

Permalink
Get rid of CurrencyRepository
Browse files Browse the repository at this point in the history
  • Loading branch information
range-of-motion committed Dec 26, 2023
1 parent 189428e commit 3a95db3
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 106 deletions.
16 changes: 11 additions & 5 deletions app/Http/Controllers/TransactionController.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,23 @@

namespace App\Http\Controllers;

use App\Models\Currency;
use App\Models\Space;
use App\Models\Tag;
use App\Repositories\CurrencyRepository;
use App\Repositories\RecurringRepository;
use App\Repositories\TransactionRepository;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class TransactionController extends Controller
{
private $currencyRepository;
private $recurringRepository;

public function __construct(
TransactionRepository $transactionRepository,
CurrencyRepository $currencyRepository,
RecurringRepository $recurringRepository
) {
$this->repository = $transactionRepository;
$this->currencyRepository = $currencyRepository;
$this->recurringRepository = $recurringRepository;
}

Expand Down Expand Up @@ -50,9 +47,18 @@ public function create()
];
}

$spaceCurrencyId = Space::find(session('space_id'))->currency_id;

$currencies = Currency::select('currencies.*')
->leftJoin('conversion_rates AS cr', 'cr.base_currency_id', '=', 'currencies.id')
->where('cr.target_currency_id', $spaceCurrencyId)
->orWhere('currencies.id', $spaceCurrencyId)
->groupBy('currencies.id')
->get();

return view('transactions.create', [
'tags' => $tags,
'currencies' => $this->currencyRepository->getIfConversionRatePresent(),
'currencies' => $currencies,
'defaultTransactionType' => Auth::user()->default_transaction_type,
'firstDayOfWeek' => Auth::user()->first_day_of_week,
'defaultCurrencyId' => Space::find(session('space_id'))->currency_id,
Expand Down
21 changes: 8 additions & 13 deletions app/Jobs/FetchConversionRate.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

namespace App\Jobs;

use App\Models\Currency;
use App\Repositories\ConversionRateRepository;
use App\Repositories\CurrencyRepository;
use Exception;
use GuzzleHttp\Client;
use Illuminate\Bus\Queueable;
Expand All @@ -19,32 +19,27 @@ class FetchConversionRate implements ShouldQueue
use Queueable;
use SerializesModels;

protected $baseCurrencyId;

private $currencyRepository;
private $conversionRateRepository;

public function __construct(int $baseCurrencyId)
public function __construct(protected int $baseCurrencyId)
{
$this->baseCurrencyId = $baseCurrencyId;
//
}

public function handle(
CurrencyRepository $currencyRepository,
ConversionRateRepository $conversionRateRepository
): void {
$this->currencyRepository = $currencyRepository;
public function handle(ConversionRateRepository $conversionRateRepository): void
{
$this->conversionRateRepository = $conversionRateRepository;

$baseCurrency = $this->currencyRepository->getById($this->baseCurrencyId);
/** @var Currency $baseCurrency */
$baseCurrency = Currency::query()->find($this->baseCurrencyId);

if (!$baseCurrency || !$baseCurrency->iso) {
return;
}

$client = new Client();

foreach ($this->currencyRepository->getAll() as $targetCurrency) {
foreach (Currency::query()->get() as $targetCurrency) {
if (!$targetCurrency->iso || $baseCurrency->iso === $targetCurrency->iso) {
continue;
}
Expand Down
10 changes: 3 additions & 7 deletions app/Jobs/FetchConversionRates.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace App\Jobs;

use App\Repositories\CurrencyRepository;
use App\Models\Currency;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
Expand All @@ -16,13 +16,9 @@ class FetchConversionRates implements ShouldQueue
use Queueable;
use SerializesModels;

private $currencyRepository;

public function handle(CurrencyRepository $currencyRepository): void
public function handle(): void
{
$this->currencyRepository = $currencyRepository;

foreach ($this->currencyRepository->getAll() as $currency) {
foreach (Currency::query()->get() as $currency) {
FetchConversionRate::dispatch($currency->id);
}
}
Expand Down
32 changes: 0 additions & 32 deletions app/Repositories/CurrencyRepository.php

This file was deleted.

49 changes: 0 additions & 49 deletions tests/Unit/Repositories/CurrencyRepositoryTest.php

This file was deleted.

0 comments on commit 3a95db3

Please sign in to comment.