point-tools/old/src/PointToolsBundle/Controller/ApiController.php

45 lines
1.4 KiB
PHP
Raw Normal View History

2015-10-07 23:11:57 +00:00
<?php
namespace src\PointToolsBundle\Controller;
2015-10-07 23:11:57 +00:00
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use src\PointToolsBundle\Entity\User;
use src\PointToolsBundle\Entity\{SubscriptionEvent};
use src\PointToolsBundle\Repository\SubscriptionEventRepository;
2017-11-05 02:03:26 +00:00
use Symfony\Component\HttpFoundation\JsonResponse;
2015-10-07 23:11:57 +00:00
use Symfony\Component\HttpFoundation\Response;
2017-11-05 02:03:26 +00:00
class ApiController
2015-10-07 23:11:57 +00:00
{
/**
* Returns last user subscribers log
*
* @ParamConverter("user", class="SkobkinPointToolsBundle:User")
*/
public function lastUserSubscribersByIdAction(User $user, SubscriptionEventRepository $subscriptionEventRepository): Response
2015-10-07 23:11:57 +00:00
{
$qb = $subscriptionEventRepository->createQueryBuilder('se');
2015-10-07 23:11:57 +00:00
$qb
->select(['se', 'sub'])
->innerJoin('se.subscriber', 'sub')
->where($qb->expr()->eq('se.author', ':author'))
2015-10-07 23:40:42 +00:00
->orderBy('se.date', 'desc')
2015-10-07 23:11:57 +00:00
->setParameter('author', $user)
->setMaxResults(20)
;
$data = [];
/** @var SubscriptionEvent $event */
foreach ($qb->getQuery()->getResult() as $event) {
$data[] = [
'user' => $event->getSubscriber()->getLogin(),
'action' => $event->getAction(),
'datetime' => $event->getDate()->format('d.m.Y H:i:s'),
];
}
2017-11-05 02:03:26 +00:00
return new JsonResponse($data);
2015-10-07 23:11:57 +00:00
}
}