ResponseError::getPrcode()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
/**
4
 * This file is part of the Pixidos package.
5
 *
6
 *  (c) Ondra Votava <[email protected]>
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
13
declare(strict_types=1);
14
15
namespace Pixidos\GPWebPay\Data;
16
17
final class ResponseError
18
{
19
    private const CODES = [
20
        'cz' => [
21
            28 => [
22
                0 => 'Zamítnuto v 3D',
23
                3000 => 'Neověřeno v 3D. Vydavatel karty není zapojen do 3D nebo karta nebyla aktivována',
24
                3002 => 'Neověřeno v 3D. Vydavatel karty nebo karta není zapojena do 3D',
25
                3004 => 'Neověřeno v 3D. Vydavatel karty není zapojen do 3D nebo karta nebyla aktivována',
26
                3005 => 'Zamítnuto v 3D. Technický problém při ověření držitele karty',
27
                3006 => 'Zamítnuto v 3D. Technický problém při ověření držitele karty',
28
                3007 => 'Zamítnuto v 3D. Technický problém v systému zůčtující banky. Kontaktujte obchodníka',
29
                3008 => 'Zamítnuto v 3D. Použit nepodoporavný karetní produkt',
30
            ],
31
            30 => [
32
                0 => 'Zamitnuto v autorizacnim centru',
33
                1001 => 'Zamitnuto v autorizacnim centru, katra blokována',
34
                1002 => 'Zamitnuto v autorizacnim centru, autorizace zamítnuta',
35
                1003 => 'Zamitnuto v autorizacnim centru, problém karty',
36
                1004 => 'Zamitnuto v autorizacnim centru, technický problém',
37
                1005 => 'Zamitnuto v autorizacnim centru, Problém ctu',
38
            ],
39
            1000 => 'Technický problém',
40
        ],
41
        'en' => [
42
            28 => [
43
                0 => 'Declined in 3D',
44
                3000 => 'Not Authenticated in 3D. Cardholder not authenticated in 3D.',
45
                3002 => 'Not Authenticated in 3D. Issuer or Cardholder not participating in 3D.',
46
                3004 => 'Not Authenticated in 3D. Issuer not participating or Cardholder not enrolled.',
47
                3005 => 'Declined in 3D. Technical problem during Cardholder authentication.',
48
                3006 => 'Declined in 3D. Technical problem during Cardholder authentication.',
49
                3007 => 'Declined in 3D. Acquirer technical problem. Contact the merchant.',
50
                3008 => 'Declined in 3D. Unsupported card product.',
51
            ],
52
            30 => [
53
                0 => 'Declined in AC',
54
                1001 => 'Declined in AC, Card blocked',
55
                1002 => 'Declined in AC, Declined',
56
                1003 => 'Declined in AC, Card problem',
57
                1004 => 'Declined in AC, Technical problem in authorization process',
58
                1005 => 'Declined in AC, Account problem',
59
            ],
60
            1000 => 'Technical problem',
61
62
        ],
63
    ];
64
65
66
67 8
    public function __construct(
68
        private readonly int $prcode,
69
        private readonly int $srcode
70
    ) {
71 8
    }
72
73
74 5
    public function getMessage(string $lang): string
75
    {
76 5
        $default = 'cz' === $lang ? 'Technický problém v systému, kontaktujete obchodníka'
77 3
            : 'Technical problem in system, contact the merchant.';
78
79 5
        return self::CODES[$lang][$this->prcode][$this->srcode] ?? $default;
80
    }
81
82
83 2
    public function getPrcode(): int
84
    {
85 2
        return $this->prcode;
86
    }
87
88 2
    public function getSrcode(): int
89
    {
90 2
        return $this->srcode;
91
    }
92
}
93