. */ declare(strict_types=1); namespace FireflyIII\Transformers; use FireflyIII\Models\Note; use FireflyIII\Models\TransactionJournalLink; use League\Fractal\TransformerAbstract; use Log; use Symfony\Component\HttpFoundation\ParameterBag; /** * * Class JournalLinkTransformer */ class JournalLinkTransformer extends TransformerAbstract { /** @var ParameterBag */ protected $parameters; /** * CurrencyTransformer constructor. * * @codeCoverageIgnore * * @param ParameterBag $parameters */ public function __construct(ParameterBag $parameters) { $this->parameters = $parameters; if ('testing' === config('app.env')) { Log::warning(sprintf('%s should not be instantiated in the TEST environment!', \get_class($this))); } } /** * @param TransactionJournalLink $link * * @return array */ public function transform(TransactionJournalLink $link): array { $notes = null; /** @var Note $note */ $note = $link->notes()->first(); if (null !== $note) { $notes = $note->text; } $data = [ 'id' => (int)$link->id, 'created_at' => $link->created_at->toAtomString(), 'updated_at' => $link->updated_at->toAtomString(), 'inward_id' => $link->source_id, 'outward_id' => $link->destination_id, 'notes' => $notes, 'links' => [ [ 'rel' => 'self', 'uri' => '/transaction_links/' . $link->id, ], ], ]; return $data; } }