. */ declare(strict_types=1); namespace FireflyIII\Factory; use FireflyIII\Models\TransactionCurrency; /** * Class TransactionCurrencyFactory */ class TransactionCurrencyFactory { /** * @param int|null $currencyId * @param null|string $currencyCode * * @return TransactionCurrency|null */ public function find(?int $currencyId, ?string $currencyCode): ?TransactionCurrency { $currencyCode = strval($currencyCode); $currencyId = intval($currencyId); if (strlen($currencyCode) === 0 && intval($currencyId) === 0) { return null; } // first by ID: if ($currencyId > 0) { $currency = TransactionCurrency::find($currencyId); if (!is_null($currency)) { return $currency; } } // then by code: if (strlen($currencyCode) > 0) { $currency = TransactionCurrency::whereCode($currencyCode)->first(); if (!is_null($currency)) { return $currency; } } return null; } }