. */ declare(strict_types=1); namespace FireflyIII\Transformers; use FireflyIII\Models\AvailableBudget; use League\Fractal\TransformerAbstract; use Log; use Symfony\Component\HttpFoundation\ParameterBag; /** * Class AvailableBudgetTransformer */ class AvailableBudgetTransformer 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 note. * * @param AvailableBudget $availableBudget * * @return array */ public function transform(AvailableBudget $availableBudget): array { $currency = $availableBudget->transactionCurrency; $data = [ 'id' => (int)$availableBudget->id, 'created_at' => $availableBudget->created_at->toAtomString(), 'updated_at' => $availableBudget->updated_at->toAtomString(), 'currency_id' => $currency->id, 'currency_code' => $currency->code, 'currency_symbol' => $currency->symbol, 'currency_dp' => $currency->decimal_places, 'start' => $availableBudget->start_date->format('Y-m-d'), 'end' => $availableBudget->end_date->format('Y-m-d'), 'amount' => round($availableBudget->amount, $currency->decimal_places), 'links' => [ [ 'rel' => 'self', 'uri' => '/available_budgets/' . $availableBudget->id, ], ], ]; return $data; } }