Test Failed
Pull Request — develop (#13)
by Rimas
07:41
created

MobileHash::createResult()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
namespace Isign\Sign;
3
4
use Isign\DocumentTypeProvider;
5
use Isign\FileFieldsTrait;
6
use Isign\QueryInterface;
7
use Isign\Validator\Constraints\Code;
8
use Isign\Validator\Constraints\Phone;
9
use Symfony\Component\Validator\Constraints as Assert;
10
11
/**
12
 * Sign document using mobile ID hash.
13
 */
14
class MobileHash implements QueryInterface
15
{
16
    /** @var string user phone number */
17
    private $phone;
18
19
    /** @var string user personal code */
20
    private $code;
21
    
22
    /** @var string Hash to sign */
23
    private $hash;
24
    
25
    /** @var string Hash algorithm */
26
    private $hashAlgorithm;
27
    
28
    /** @var string Signature encryption type. */
29
    private $encryption;
30
    
31
    /** @var string Message displayed on the phone screen. Attention: UTF-8 symbols are not allowed */
32
    private $message;
33
34
    /** @var string Language for messages displayed on the phone screen */
35
    private $language;
36
37
    /**
38
     * @param string $phone
39
     * @param string $code
40
     * @param string $hash
41
     * @param string $hashAlgorithm
42
     * @param string $encryption
43
     * @param string $message
44
     * @param string $language
45
     */
46
    public function __construct(
47
        $phone,
48
        $code,
49
        $hash,
50
        $hashAlgorithm,
51
        $encryption,
52
        $message,
53
        $language
54
    ) {
55
        $this->phone = $phone;
56
        $this->code = $code;
57
        $this->hash = $hash;
58
        $this->hashAlgorithm = $hashAlgorithm;
59
        $this->encryption = $encryption;
60
        $this->message = $message;
61
        $this->language = $language;
62
    }
63
64
    /**
65
     * Field and values association used in query
66
     * @return array
67
     */
68
    public function getFields()
69
    {
70
        return [
71
            'phone' => $this->phone,
72
            'code' => $this->code,
73
            'hash' => $this->hash,
74
            'hash_algorithm' => $this->hashAlgorithm,
75
            'encryption' => $this->encryption,
76
            'message' => $this->message,
77
            'language' => $this->language,
78
        ];
79
    }
80
81
    /**
82
     * Validation constraints for request data validation
83
     * @return Assert\Collection
84
     */
85
    public function getValidationConstraints()
86
    {
87
        return new Assert\Collection([
88
            'phone' => new Assert\Required([
89
                new Assert\NotBlank(),
90
                new Phone(),
91
            ]),
92
            'code' => new Assert\Required([
93
                new Assert\NotBlank(),
94
                new Code()
95
            ]),
96
            'hash' => new Assert\NotBlank(),
97
            'hash_algorithm' => new Assert\NotBlank(),
98
            'encryption' => new Assert\NotBlank(),
99
            'message' => new Assert\NotBlank(),
100
            'language' => new Assert\NotBlank(),
101
        ]);
102
    }
103
104
    /**
105
     * Result object for this query result
106
     * @return MobileHashResult
107
     */
108
    public function createResult()
109
    {
110
        return new MobileHashResult();
111
    }
112
113
    /**
114
     * API action name, part of full API request url
115
     * @return string
116
     */
117
    public function getAction()
118
    {
119
        return 'mobile/sign/hash';
120
    }
121
122
    /**
123
     * HTTP method to use
124
     * @return string
125
     */
126
    public function getMethod()
127
    {
128
        return QueryInterface::POST;
129
    }
130
}
131