diff --git a/app/Transformers/AttachmentTransformer.php b/app/Transformers/AttachmentTransformer.php index d65d4db907..c2f05bf208 100644 --- a/app/Transformers/AttachmentTransformer.php +++ b/app/Transformers/AttachmentTransformer.php @@ -25,6 +25,7 @@ namespace FireflyIII\Transformers; use FireflyIII\Models\Attachment; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; use League\Fractal\Resource\Collection as FractalCollection; use League\Fractal\Resource\Item; use League\Fractal\TransformerAbstract; @@ -40,17 +41,20 @@ class AttachmentTransformer extends TransformerAbstract * * @var array */ - protected $availableIncludes = ['user', 'notes']; + protected $availableIncludes = ['user']; /** * List of resources to automatically include * * @var array */ - protected $defaultIncludes = ['user', 'notes']; + protected $defaultIncludes = ['user']; /** @var ParameterBag */ protected $parameters; + /** @var AttachmentRepositoryInterface */ + private $repository; + /** * BillTransformer constructor. * @@ -61,20 +65,7 @@ class AttachmentTransformer extends TransformerAbstract public function __construct(ParameterBag $parameters) { $this->parameters = $parameters; - } - - /** - * Attach the notes. - * - * @codeCoverageIgnore - * - * @param Attachment $attachment - * - * @return FractalCollection - */ - public function includeNotes(Attachment $attachment): FractalCollection - { - return $this->collection($attachment->notes, new NoteTransformer($this->parameters), 'notes'); + $this->repository = app(AttachmentRepositoryInterface::class); } /** @@ -100,6 +91,8 @@ class AttachmentTransformer extends TransformerAbstract */ public function transform(Attachment $attachment): array { + $this->repository->setUser($attachment->user); + return [ 'id' => (int)$attachment->id, 'updated_at' => $attachment->updated_at->toAtomString(), @@ -111,6 +104,7 @@ class AttachmentTransformer extends TransformerAbstract 'upload_uri' => route('api.v1.attachments.upload', [$attachment->id]), 'title' => $attachment->title, 'mime' => $attachment->mime, + 'notes' => $this->repository->getNoteText($attachment), 'size' => (int)$attachment->size, 'links' => [ [ diff --git a/app/Transformers/BillTransformer.php b/app/Transformers/BillTransformer.php index acc49db569..449781ca35 100644 --- a/app/Transformers/BillTransformer.php +++ b/app/Transformers/BillTransformer.php @@ -44,17 +44,20 @@ class BillTransformer extends TransformerAbstract * * @var array */ - protected $availableIncludes = ['attachments', 'transactions', 'user', 'notes', 'rules']; + protected $availableIncludes = ['attachments', 'transactions', 'user', 'rules']; /** * List of resources to automatically include * * @var array */ - protected $defaultIncludes = ['notes', 'rules']; + protected $defaultIncludes = ['rules']; /** @var ParameterBag */ protected $parameters; + /** @var BillRepositoryInterface */ + private $repository; + /** * BillTransformer constructor. * @@ -65,6 +68,7 @@ class BillTransformer extends TransformerAbstract public function __construct(ParameterBag $parameters) { $this->parameters = $parameters; + $this->repository = app(BillRepositoryInterface::class); } /** @@ -82,20 +86,6 @@ class BillTransformer extends TransformerAbstract return $this->collection($attachments, new AttachmentTransformer($this->parameters), 'attachments'); } - /** - * Attach the notes. - * - * @codeCoverageIgnore - * - * @param Bill $bill - * - * @return FractalCollection - */ - public function includeNotes(Bill $bill): FractalCollection - { - return $this->collection($bill->notes, new NoteTransformer($this->parameters), 'notes'); - } - /** * Attach the rules. * @@ -107,11 +97,9 @@ class BillTransformer extends TransformerAbstract */ public function includeRules(Bill $bill): FractalCollection { - /** @var BillRepositoryInterface $repository */ - $repository = app(BillRepositoryInterface::class); - $repository->setUser($bill->user); + $this->repository->setUser($bill->user); // add info about rules: - $rules = $repository->getRulesForBill($bill); + $rules = $this->repository->getRulesForBill($bill); return $this->collection($rules, new RuleTransformer($this->parameters), 'rules'); } @@ -167,7 +155,8 @@ class BillTransformer extends TransformerAbstract { $paidData = $this->paidData($bill); $payDates = $this->payDates($bill); - $data = [ + $this->repository->setUser($bill->user); + $data = [ 'id' => (int)$bill->id, 'updated_at' => $bill->updated_at->toAtomString(), 'created_at' => $bill->created_at->toAtomString(), @@ -184,6 +173,7 @@ class BillTransformer extends TransformerAbstract 'active' => $bill->active, 'attachments_count' => $bill->attachments()->count(), 'pay_dates' => $payDates, + 'notes' => $this->repository->getNoteText($bill), 'paid_dates' => $paidData['paid_dates'], 'next_expected_match' => $paidData['next_expected_match'], 'links' => [