AbstractFailure::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Copyright (c) 2019. Volodymyr Hryvinskyi.  All rights reserved.
4
 * @author: <mailto:[email protected]>
5
 * @github: <https://github.com/hryvinskyi>
6
 */
7
8
declare(strict_types=1);
9
10
namespace Hryvinskyi\InvisibleCaptcha\Model\Provider;
11
12
use Hryvinskyi\InvisibleCaptcha\Model\ReCaptcha\Response;
13
14
/**
15
 * Class AbstractFailure
16
 */
17
abstract class AbstractFailure implements FailureInterface
18
{
19
    /**
20
     * @var FailureMessages
21
     */
22
    private $failureMessages;
23
24
    /**
25
     * AbstractFailure constructor.
26
     *
27
     * @param FailureMessages $failureMessages
28
     */
29
    public function __construct(
30
        FailureMessages $failureMessages
31
    ) {
32
        $this->failureMessages = $failureMessages;
33
    }
34
35
    /**
36
     * @param Response $verifyReCaptcha
37
     *
38
     * @return array
39
     */
40
    public function getMessages(Response $verifyReCaptcha): array
41
    {
42
        $return = [];
43
44
        $errorMessages = $this->failureMessages->getErrorMessages();
45
        $errorsCodes = array_keys($errorMessages);
46
        $errors = array_intersect($verifyReCaptcha->getErrorCodes(), $errorsCodes);
47
48
        foreach ($errors as $error) {
49
            if ($this->failureMessages->hasErrorMessage($error)) {
50
                $return[] = $this->failureMessages->getErrorMessage($error);
51
            }
52
        }
53
54
        return $return;
55
    }
56
57
    /**
58
     * @param Response $verifyReCaptcha
59
     *
60
     * @return string
61
     */
62
    public function getMessagesString(Response $verifyReCaptcha): string
63
    {
64
        return implode('<br>', $this->getMessages($verifyReCaptcha));
65
    }
66
}
67