mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-20 11:48:27 -06:00
Add bills and piggy banks
This commit is contained in:
parent
84263b9ee8
commit
b43ea5c108
@ -25,6 +25,7 @@ namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup;
|
|||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Models\ObjectGroup;
|
use FireflyIII\Models\ObjectGroup;
|
||||||
use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface;
|
use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface;
|
||||||
|
use FireflyIII\Transformers\BillTransformer;
|
||||||
use FireflyIII\Transformers\PiggyBankTransformer;
|
use FireflyIII\Transformers\PiggyBankTransformer;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
@ -96,4 +97,36 @@ class ListController extends Controller
|
|||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List all bills
|
||||||
|
*
|
||||||
|
* @param ObjectGroup $objectGroup
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function bills(ObjectGroup $objectGroup): JsonResponse
|
||||||
|
{
|
||||||
|
$manager = $this->getManager();
|
||||||
|
|
||||||
|
$pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
|
||||||
|
// get list of piggy banks. Count it and split it.
|
||||||
|
$collection = $this->repository->getBills($objectGroup);
|
||||||
|
$count = $collection->count();
|
||||||
|
$bills = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
|
||||||
|
|
||||||
|
// make paginator:
|
||||||
|
$paginator = new LengthAwarePaginator($bills, $count, $pageSize, $this->parameters->get('page'));
|
||||||
|
$paginator->setPath(route('api.v1.currencies.bills', [$objectGroup->id]) . $this->buildParams());
|
||||||
|
|
||||||
|
/** @var BillTransformer $transformer */
|
||||||
|
$transformer = app(BillTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new FractalCollection($bills, $transformer, 'bills');
|
||||||
|
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
}
|
||||||
}
|
}
|
@ -163,6 +163,14 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface
|
|||||||
return $objectGroup->piggyBanks;
|
return $objectGroup->piggyBanks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public function getBills(ObjectGroup $objectGroup): Collection
|
||||||
|
{
|
||||||
|
return $objectGroup->bills;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
|
@ -61,6 +61,13 @@ interface ObjectGroupRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function getPiggyBanks(ObjectGroup $objectGroup): Collection;
|
public function getPiggyBanks(ObjectGroup $objectGroup): Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ObjectGroup $objectGroup
|
||||||
|
*
|
||||||
|
* @return Collection
|
||||||
|
*/
|
||||||
|
public function getBills(ObjectGroup $objectGroup): Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sort
|
* Sort
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user