Completed
Push — master ( 89ec3c...2cd44b )
by WEBEWEB
01:09
created

HaveIBeenPwnedFactory::newBreachedAccountRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
c 0
b 0
f 0
rs 9.9332
cc 1
nc 1
nop 1
1
<?php
2
3
/*
4
 * This file is part of the haveibeenpwned-bundle package.
5
 *
6
 * (c) 2019 WEBEWEB
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace WBW\Bundle\HaveIBeenPwnedBundle\Factory;
13
14
use WBW\Bundle\HaveIBeenPwnedBundle\Entity\BreachedAccountInterface;
15
use WBW\Bundle\HaveIBeenPwnedBundle\Entity\BreachesInterface;
16
use WBW\Bundle\HaveIBeenPwnedBundle\Entity\BreachInterface;
17
use WBW\Bundle\HaveIBeenPwnedBundle\Entity\PasteAccountInterface;
18
use WBW\Bundle\HaveIBeenPwnedBundle\Entity\RangeInterface;
19
use WBW\Library\HaveIBeenPwned\Model\Request\BreachedAccountRequest;
20
use WBW\Library\HaveIBeenPwned\Model\Request\BreachesRequest;
21
use WBW\Library\HaveIBeenPwned\Model\Request\BreachRequest;
22
use WBW\Library\HaveIBeenPwned\Model\Request\PasteAccountRequest;
23
use WBW\Library\HaveIBeenPwned\Model\Request\RangeRequest;
24
25
/**
26
 * HaveIBeenPwned factory.
27
 *
28
 * @author webeweb <https://github.com/webeweb/>
29
 * @package WBW\Bundle\HaveIBeenPwnedBundle\Factory
30
 */
31
class HaveIBeenPwnedFactory {
32
33
    /**
34
     * Creates a breach request.
35
     *
36
     * @param BreachInterface $breach The breaches.
37
     * @return BreachRequest Returns the breach request.
38
     */
39
    public static function newBreachRequest(BreachInterface $breach) {
40
41
        $model = new BreachRequest();
42
        $model->setName($breach->getHaveIBeenPwnedName());
43
44
        return $model;
45
    }
46
47
    /**
48
     * Creates a breached account request.
49
     *
50
     * @param BreachedAccountInterface $breachedAccount The breached account.
51
     * @return BreachedAccountRequest Returns the breached account request.
52
     */
53
    public static function newBreachedAccountRequest(BreachedAccountInterface $breachedAccount) {
54
55
        $model = new BreachedAccountRequest();
56
        $model->setAccount($breachedAccount->getHaveIBeenPwnedAccount());
57
        $model->setDomain($breachedAccount->getHaveIBeenPwnedDomain());
58
        $model->setIncludeUnverified($breachedAccount->getHaveIBeenPwnedIncludeUnverified());
59
        $model->setTruncateResponse($breachedAccount->getHaveIBeenPwnedTruncateResponse());
60
61
        return $model;
62
    }
63
64
    /**
65
     * Creates a breaches request.
66
     *
67
     * @param BreachesInterface $breaches The breaches.
68
     * @return BreachesRequest Returns the breaches request.
69
     */
70
    public static function newBreachesRequest(BreachesInterface $breaches) {
71
72
        $model = new BreachesRequest();
73
        $model->setDomain($breaches->getHaveIBeenPwnedDomain());
74
75
        return $model;
76
    }
77
78
    /**
79
     * Creates a paste account request.
80
     *
81
     * @param PasteAccountInterface $pasteAccount The paste account.
82
     * @return PasteAccountRequest Returns the paste account request.
83
     */
84
    public static function newPasteAccountRequest(PasteAccountInterface $pasteAccount) {
85
86
        $model = new PasteAccountRequest();
87
        $model->setAccount($pasteAccount->getHaveIBeenPwnedAccount());
88
89
        return $model;
90
    }
91
92
    /**
93
     * Creates a range request.
94
     *
95
     * @param RangeInterface $range The range.
96
     * @return RangeRequest Returns the range request.
97
     */
98
    public static function newRangeRequest(RangeInterface $range) {
99
100
        $model = new RangeRequest();
101
        $model->setHash($range->getHaveIBeenPwnedHash());
102
103
        return $model;
104
    }
105
}
106