<?php
namespace LaunchPad\Bundle\LaunchPadBundle\Admin\Api\Controller;
use LaunchPad\Bundle\LaunchPadBundle\Admin\Api\Controller\BaseAdminApiController;
use LaunchPad\Bundle\LaunchPadBundle\Base\Service\StatsService;
use Symfony\Component\Routing\Annotation\Route;
/**
* Class StatsController
* @Route("/stats", name="admin_stats_")
*/
class StatsController extends BaseAdminApiController
{
/**
* @Route("/users", name="users")
* @param StatsService $statsService
* @return \Symfony\Component\HttpFoundation\JsonResponse
* @throws \Doctrine\Common\Annotations\AnnotationException
* @throws \Symfony\Component\Serializer\Exception\ExceptionInterface
*/
public function getUsersStats(StatsService $statsService)
{
return $this->success($statsService->getUserStats());
}
/**
* @Route("/userTrend", name="user_trend")
* @throws \Doctrine\Common\Annotations\AnnotationException
* @throws \Symfony\Component\Serializer\Exception\ExceptionInterface
*/
public function newUsers(StatsService $statsService)
{
return $this->success($statsService->getUserTrendStats());
}
/**
* @Route("/transactions", name="transactions")
* @param StatsService $statsService
* @return \Symfony\Component\HttpFoundation\JsonResponse
* @throws \Doctrine\Common\Annotations\AnnotationException
* @throws \Symfony\Component\Serializer\Exception\ExceptionInterface
*/
public function transactionsAction(StatsService $statsService)
{
return $this->success($statsService->getTransactionTrendStats());
}
/**
* @Route("/totals", name="totals")
* @return \Symfony\Component\HttpFoundation\JsonResponse
* @throws \Doctrine\Common\Annotations\AnnotationException
* @throws \Doctrine\ORM\NonUniqueResultException
*/
public function getTotalsAction(StatsService $statsService)
{
return $this->success($statsService->getTotals(@$this->data['filter']), null, ['project_data', 'basic_data']);
}
/**
* @Route("/totals/download", name="totals_download")
* @return \Symfony\Component\HttpFoundation\JsonResponse
* @throws \Doctrine\Common\Annotations\AnnotationException
* @throws \Doctrine\ORM\NonUniqueResultException
*/
public function downloadTotalsAction(StatsService $statsService)
{
return $statsService->downloadTotals($this->data['filter']);
}
}