• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

rich-id / terms-module / #64

11 Oct 2023 03:35PM UTC coverage: 83.731%. First build
#64

push

web-flow
Merge b679837ca into b062eebb9

146 of 146 new or added lines in 12 files covered. (100.0%)

772 of 922 relevant lines covered (83.73%)

3.01 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/UserInterface/Controller/DownloadTermsVersionSignaturePdf.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace RichId\TermsModuleBundle\UserInterface\Controller;
6

7
use RichId\TermsModuleBundle\Domain\Entity\TermsUserInterface;
8
use RichId\TermsModuleBundle\Domain\Entity\TermsVersionSignature;
9
use RichId\TermsModuleBundle\Domain\Pdf\TermsVersionSignaturePdfGeneratorManager;
10
use RichId\TermsModuleBundle\Domain\Port\SecurityInterface;
11
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
12
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
13
use Symfony\Component\HttpFoundation\Response;
14
use Symfony\Contracts\Translation\TranslatorInterface;
15

16
class DownloadTermsVersionSignaturePdf extends AbstractController
17
{
18
    /** @var TermsVersionSignaturePdfGeneratorManager */
19
    protected $termsVersionSignaturePdfGeneratorManager;
20

21
    /** @var SecurityInterface */
22
    protected $security;
23

24
    /** @var TranslatorInterface */
25
    protected $translator;
26

27
    public function __construct(
28
        TermsVersionSignaturePdfGeneratorManager $termsVersionSignaturePdfGeneratorManager,
29
        SecurityInterface $security,
30
        TranslatorInterface $translator
31
    ) {
32
        $this->termsVersionSignaturePdfGeneratorManager = $termsVersionSignaturePdfGeneratorManager;
×
33
        $this->security = $security;
×
34
        $this->translator = $translator;
×
35
    }
×
36

37
    /**
38
     * @IsGranted("MODULE_TERMS_ADMIN")
39
     * @IsGranted("MODULE_TERMS_CAN_GENERATE_SIGNATURE_PDF")
40
     */
41
    public function __invoke(TermsVersionSignature $termsVersionSignature): Response
42
    {
43
        $generator = $this->termsVersionSignaturePdfGeneratorManager->getConfiguredGenerator();
×
44
        $user = $this->security->getUser();
×
45

46
        if ($generator === null || !$user instanceof TermsUserInterface) {
×
47
            throw new \LogicException();
×
48
        }
49

50
        return new Response(
×
51
            $generator($termsVersionSignature, $user),
×
52
            Response::HTTP_OK,
×
53
            [
54
                'Content-Type'        => 'application/pdf',
×
55
                'Content-Disposition' => 'attachment; filename="' . $this->translator->trans('terms_module.pdf_signature.filename', [], 'terms_module') . '"',
×
56
            ]
57
        );
58
    }
59
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc