• 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

90.0
/src/Domain/Factory/TermsVersionSignatureFactory.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace RichId\TermsModuleBundle\Domain\Factory;
6

7
use RichId\TermsModuleBundle\Domain\Entity\TermsSubjectInterface;
8
use RichId\TermsModuleBundle\Domain\Entity\TermsUserInterface;
9
use RichId\TermsModuleBundle\Domain\Entity\TermsVersion;
10
use RichId\TermsModuleBundle\Domain\Entity\TermsVersionSignature;
11
use RichId\TermsModuleBundle\Domain\Guard\TermsGuardManager;
12
use RichId\TermsModuleBundle\Domain\Port\SecurityInterface;
13
use RichId\TermsModuleBundle\Domain\Port\TranslatorInterface;
14

15
class TermsVersionSignatureFactory
16
{
17
    /** @var SecurityInterface */
18
    protected $security;
19

20
    /** @var TranslatorInterface */
21
    protected $translator;
22

23
    /** @var TermsGuardManager */
24
    protected $termsGuardManager;
25

26
    public function __construct(SecurityInterface $security, TranslatorInterface $translator, TermsGuardManager $termsGuardManager)
27
    {
28
        $this->security = $security;
2✔
29
        $this->translator = $translator;
2✔
30
        $this->termsGuardManager = $termsGuardManager;
2✔
31
    }
2✔
32

33
    public function __invoke(TermsVersion $version, TermsSubjectInterface $subject): TermsVersionSignature
34
    {
35
        $guard = $this->termsGuardManager->getGuardFor($version->getTerms()->getSlug() ?? '', $subject);
2✔
36
        $subjectName = $guard !== null ? $guard->getSubjectName($subject) : null;
2✔
37
        $subjectName = $subjectName ?? $this->translator->trans('terms_module.pdf_signature.subject_not_found', [], 'terms_module');
2✔
38

39
        $user = $this->security->getUser();
2✔
40

41
        $entity = new TermsVersionSignature();
2✔
42

43
        $entity->setVersion($version);
2✔
44
        $entity->setSubjectType($subject->getTermsSubjectType());
2✔
45
        $entity->setSubjectIdentifier($subject->getTermsSubjectIdentifier());
2✔
46
        $entity->setSubjectName($subjectName);
2✔
47
        $entity->setDate(new \DateTime());
2✔
48

49
        if ($user !== null) {
2✔
50
            $entity->setSignedBy($user->getUsername());
1✔
51
        }
52

53
        if ($user instanceof TermsUserInterface) {
2✔
54
            $entity->setSignedByName($user->getTermsDisplayName());
×
55
            $entity->setSignedByNameForSort($user->getTermsDisplayNameForSort());
×
56
        }
57

58
        return $entity;
2✔
59
    }
60
}
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