. */ declare(strict_types=1); namespace FireflyIII\Transformers; use FireflyIII\Models\TransactionJournalLink; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use Log; /** * * Class TransactionLinkTransformer */ class TransactionLinkTransformer extends AbstractTransformer { /** @var JournalRepositoryInterface */ private $repository; /** * Constructor. * * @codeCoverageIgnore */ public function __construct() { $this->repository = app(JournalRepositoryInterface::class); 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 = $this->repository->getLinkNoteText($link); $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 ? null : $notes, 'links' => [ [ 'rel' => 'self', 'uri' => '/transaction_links/' . $link->id, ], ], ]; return $data; } }