VirtualCard   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 93
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
eloc 19
c 1
b 0
f 0
dl 0
loc 93
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A unblock() 0 5 1
A block() 0 5 1
A withdraw() 0 6 1
A terminate() 0 5 1
A fund() 0 6 1
A transactions() 0 5 1
1
<?php
2
3
namespace Digikraaft\Flutterwave;
4
5
class VirtualCard extends ApiResource
6
{
7
    const OBJECT_NAME = 'virtual-cards';
8
9
    /**
10
     * Flutterwave Documentation Reference.
11
     *
12
     * @link https://developer.flutterwave.com/reference#charge-a-card
13
     */
14
    use ApiOperations\Create;
15
    use ApiOperations\All;
16
    use ApiOperations\Fetch;
17
18
    /**
19
     * @param string $cardId
20
     * @param array $params
21
     *
22
     * @return array|object
23
     * @link https://developer.flutterwave.com/reference#fund-a-virtual-card
24
     */
25
    public static function fund(string $cardId, array $params)
26
    {
27
        self::validateParams($params, true);
28
        $url = static::endPointUrl("{$cardId}/fund");
29
30
        return static::staticRequest('POST', $url, $params);
31
    }
32
33
    /**
34
     * @param string $cardId
35
     * @param array $params
36
     *
37
     * @return array|object
38
     * @link https://developer.flutterwave.com/reference#terminate-a-virtual-card-1
39
     */
40
    public static function terminate(string $cardId)
41
    {
42
        $url = static::endPointUrl("{$cardId}/terminate");
43
44
        return static::staticRequest('PUT', $url);
45
    }
46
47
    /**
48
     * @param string $cardId
49
     * @return array|object
50
     * @link https://developer.flutterwave.com/reference#get-virtual-card-transactions
51
     */
52
    public static function transactions(string $cardId)
53
    {
54
        $url = static::endPointUrl("{$cardId}/transactions");
55
56
        return static::staticRequest('GET', $url);
57
    }
58
59
    /**
60
     * @param string $cardId
61
     * @param array $params
62
     *
63
     * @return array|object
64
     * @link https://developer.flutterwave.com/reference#withdraw-from-a-virtual-card
65
     */
66
    public static function withdraw(string $cardId, array $params)
67
    {
68
        self::validateParams($params, true);
69
        $url = static::endPointUrl("{$cardId}/withdraw");
70
71
        return static::staticRequest('POST', $url, $params);
72
    }
73
74
    /**
75
     * @param string $cardId
76
     * @return array|object
77
     *
78
     * @link https://developer.flutterwave.com/reference#blockunblock-virtual-cards
79
     */
80
    public static function block(string $cardId)
81
    {
82
        $url = static::endPointUrl("/{$cardId}/status/block");
83
84
        return static::staticRequest('PUT', $url);
85
    }
86
87
    /**
88
     * @param string $cardId
89
     * @return array|object
90
     *
91
     * @link https://developer.flutterwave.com/reference#blockunblock-virtual-cards
92
     */
93
    public static function unblock(string $cardId)
94
    {
95
        $url = static::endPointUrl("/{$cardId}/status/unblock");
96
97
        return static::staticRequest('PUT', $url);
98
    }
99
}
100