. */ declare(strict_types=1); namespace FireflyIII\Transformers; use FireflyIII\Models\TransactionCurrency; use Log; /** * Class CurrencyTransformer */ class CurrencyTransformer extends AbstractTransformer { /** * CurrencyTransformer constructor. * * @codeCoverageIgnore */ public function __construct() { if ('testing' === config('app.env')) { Log::warning(sprintf('%s should not be instantiated in the TEST environment!', get_class($this))); } } /** * Transform the currency. * * @param TransactionCurrency $currency * * @return array */ public function transform(TransactionCurrency $currency): array { $isDefault = false; $defaultCurrency = $this->parameters->get('defaultCurrency'); if (null !== $defaultCurrency) { $isDefault = $defaultCurrency->id === $currency->id; } $data = [ 'id' => (int)$currency->id, 'created_at' => $currency->created_at->toAtomString(), 'updated_at' => $currency->updated_at->toAtomString(), 'default' => $isDefault, 'enabled' => $currency->enabled, 'name' => $currency->name, 'code' => $currency->code, 'symbol' => $currency->symbol, 'decimal_places' => (int)$currency->decimal_places, 'links' => [ [ 'rel' => 'self', 'uri' => '/currencies/' . $currency->id, ], ], ]; return $data; } }