Align notes with object, not separate.

This commit is contained in:
James Cole 2018-09-27 07:43:30 +02:00
parent 214c7a6f3e
commit 2c2814c998
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
2 changed files with 21 additions and 37 deletions

View File

@ -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' => [
[

View File

@ -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,6 +155,7 @@ class BillTransformer extends TransformerAbstract
{
$paidData = $this->paidData($bill);
$payDates = $this->payDates($bill);
$this->repository->setUser($bill->user);
$data = [
'id' => (int)$bill->id,
'updated_at' => $bill->updated_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' => [