MonnifyFailedRequestException   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
eloc 16
c 1
b 0
f 0
dl 0
loc 38
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A byCode() 0 18 4
1
<?php
2
/**
3
 * Created By: Henry Ejemuta
4
 * Project: laravel-monnify
5
 * Class Name: MonnifyFailedRequestException.php
6
 * Date Created: 7/14/20
7
 * Time Created: 3:12 PM
8
 */
9
10
namespace HenryEjemuta\LaravelMonnify\Exceptions;
11
12
13
use Throwable;
14
15
class MonnifyFailedRequestException extends \Exception
16
{
17
18
    /**
19
     * MonnifyFailedRequestException constructor.
20
     * @param string $message
21
     * @param int $code
22
     * @param Throwable|null $previous
23
     */
24
    public function __construct(string $message = "", int $code = 0, Throwable $previous = null)
25
    {
26
        parent::__construct($message, $code, $previous);
27
    }
28
29
    /**
30
     * @param int $code
31
     * @return MonnifyFailedRequestException
32
     *
33
     * @link https://docs.teamapt.com/display/MON/Transaction+Responses
34
     */
35
    public static function byCode(int $code): MonnifyFailedRequestException
36
    {
37
        switch ($code) {
38
            case 0:
39
                $message = "Request was successfully processed";
40
                break;
41
            case 99:
42
                $message = "Request processing failed. A responseMessage field will be included with details of reason for failed request.";
43
                break;
44
            case 100:
45
                $message = "Attempt to initialize an already completed card transaction.";
46
                break;
47
            default:
48
                $message = "Unhandled error occurred.";
49
                break;
50
51
        }
52
        return new self($message, $code);
53
    }
54
}
55