generator = app(GeneratorInterface::class); } /** * Shows the piggy bank history. * * @param PiggyBankRepositoryInterface $repository * @param PiggyBank $piggyBank * * @return \Symfony\Component\HttpFoundation\Response */ public function history(PiggyBankRepositoryInterface $repository, PiggyBank $piggyBank) { // chart properties for cache: $cache = new CacheProperties; $cache->addProperty('chart.piggy-bank.history'); $cache->addProperty($piggyBank->id); if ($cache->has()) { return Response::json($cache->get()); // @codeCoverageIgnore } $set = $repository->getEvents($piggyBank); $set = $set->reverse(); $chartData = []; $sum = '0'; /** @var PiggyBankEvent $entry */ foreach ($set as $entry) { $label = $entry->date->formatLocalized(strval(trans('config.month_and_day'))); $sum = bcadd($sum, $entry->amount); $chartData[$label] = $sum; } $data = $this->generator->singleSet($piggyBank->name, $chartData); $cache->store($data); return Response::json($data); } }