Passed
Push — master ( d38343...31d2e5 )
by Damien
03:47
created

AuditController::showTransactionAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 1
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace DH\DoctrineAuditBundle\Controller;
4
5
use DH\DoctrineAuditBundle\Helper\AuditHelper;
6
use DH\DoctrineAuditBundle\Reader\AuditReader;
7
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
8
use Symfony\Component\HttpFoundation\Request;
9
use Symfony\Component\HttpFoundation\Response;
10
use Symfony\Component\Routing\Annotation\Route;
11
12
class AuditController extends AbstractController
13
{
14
    /**
15
     * @Route("/audit", name="dh_doctrine_audit_list_audits", methods={"GET"})
16
     */
17
    public function listAuditsAction(): Response
18
    {
19
        $reader = $this->container->get('dh_doctrine_audit.reader');
20
21
        return $this->render('@DHDoctrineAudit/Audit/audits.html.twig', [
22
            'audited' => $reader->getEntities(),
23
            'reader' => $reader,
24
        ]);
25
    }
26
27
    /**
28
     * @Route("/audit/transaction/{hash}", name="dh_doctrine_audit_show_transaction", methods={"GET"})
29
     *
30
     * @param string $hash
31
     *
32
     * @throws \Doctrine\ORM\ORMException
33
     *
34
     * @return Response
35
     */
36
    public function showTransactionAction(string $hash): Response
37
    {
38
        $reader = $this->container->get('dh_doctrine_audit.reader');
39
        $audits = $reader->getAuditsByTransactionHash($hash);
40
41
        return $this->render('@DHDoctrineAudit/Audit/transaction.html.twig', [
42
            'hash' => $hash,
43
            'audits' => $audits,
44
        ]);
45
    }
46
47
    /**
48
     * @Route("/audit/{entity}/{id}", name="dh_doctrine_audit_show_entity_history", methods={"GET"})
49
     *
50
     * @param Request    $request
51
     * @param string     $entity
52
     * @param int|string $id
53
     *
54
     * @return Response
55
     */
56
    public function showEntityHistoryAction(Request $request, string $entity, $id = null): Response
57
    {
58
        $page = (int) $request->query->get('page', 1);
59
        $entity = AuditHelper::paramToNamespace($entity);
60
61
        $reader = $this->container->get('dh_doctrine_audit.reader');
62
        $entries = $reader->getAuditsPager($entity, $id, $page, AuditReader::PAGE_SIZE);
63
64
        return $this->render('@DHDoctrineAudit/Audit/entity_history.html.twig', [
65
            'id' => $id,
66
            'entity' => $entity,
67
            'entries' => $entries,
68
        ]);
69
    }
70
}
71