Passed
Push — master ( 92daf4...591509 )
by
unknown
02:27
created

MangoPayConstants::isEventTypeToDoWithKYC()   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 1
1
<?php
2
/**
3
 * Created by Graham Owens ([email protected])
4
 * Company: PartFire Ltd (www.partfire.co.uk)
5
 * Console: Discovery
6
 *
7
 * User:    gra
8
 * Date:    31/12/16
9
 * Time:    00:53
10
 * Project: PartFire MangoPay Bundle
11
 * File:    MangoPayConstants.php
12
 *
13
 **/
14
15
namespace PartFire\MangoPayBundle;
16
17
18
class MangoPayConstants
19
{
20
    const       NATURAL_PERSON_TYPE                 = 'NATURAL';
21
    const       LEGAL_PERSON_TYPE                   = 'LEGAL';
22
23
    //  https://docs.mangopay.com/endpoints/v2.01/users#e259_create-a-legal-user
24
25
    //  May also help https://www.gov.uk/business-legal-structures/overview
26
27
    const       LEGAL_PERSON_TYPE_SOLETRADER        = 'SOLETRADER';
28
    const       LEGAL_PERSON_TYPE_ORGANISATION      = 'ORGANIZATION';
29
    const       LEGAL_PERSON_TYPE_BUSINESS          = 'BUSINESS';
30
31
    //  https://docs.mangopay.com/endpoints/v2.01/users#e253_the-user-object
32
33
    const       KYC_LEVEL_LIGHT                     = 'LIGHT';
34
    const       KYC_LEVEL_REGULAR                   = 'REGULAR';
35
36
    // https://docs.mangopay.com/endpoints/v2/users#e254_the-natural-user-object
37
38
    // KYC Doc types = https://docs.mangopay.com/endpoints/v2.01/kyc-documents#e205_create-a-kyc-document
39
    const       IDENTITY_PROOF                      = 'IDENTITY_PROOF';
40
    const       REGISTRATION_PROOF                  = 'REGISTRATION_PROOF';
41
    const       ARTICLES_OF_ASSOCIATION             = 'ARTICLES_OF_ASSOCIATION';
42
    const       SHAREHOLDER_DECLARATION             = 'SHAREHOLDER_DECLARATION';
43
    const       ADDRESS_PROOF                       = 'ADDRESS_PROOF';
44
45
    // KYC Doc Refusal reasons
46
47
    const       DOCUMENT_UNREADABLE                 = 'DOCUMENT_UNREADABLE';
48
    const       DOCUMENT_NOT_ACCEPTED               = 'DOCUMENT_NOT_ACCEPTED';
49
    const       DOCUMENT_HAS_EXPIRED                = 'DOCUMENT_HAS_EXPIRED';
50
    const       DOCUMENT_INCOMPLETE                 = 'DOCUMENT_INCOMPLETE';
51
    const       DOCUMENT_MISSING                    = 'DOCUMENT_MISSING';
52
    const       DOCUMENT_DO_NOT_MATCH_USER_DATA     = 'DOCUMENT_DO_NOT_MATCH_USER_DATA';
53
    const       DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA  = 'DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA';
54
    const       SPECIFIC_CASE                       = 'SPECIFIC_CASE';
55
    const       DOCUMENT_FALSIFIED                  = 'DOCUMENT_FALSIFIED';
56
    const       UNDERAGE_PERSON                     = 'UNDERAGE_PERSON';
57
    const       OTHER                               = 'OTHER';
58
    const       TRIGGER_PEPS                        = 'TRIGGER_PEPS';
59
    const       TRIGGER_SANCTIONS_LISTS             = 'TRIGGER_SANCTIONS_LISTS';
60
    const       TRIGGER_INTERPOL                    = 'TRIGGER_INTERPOL';
61
62
    // KYC Doc Status
63
64
    const       CREATED                             = 'CREATED';
65
    const       VALIDATION_ASKED                    = 'VALIDATION_ASKED';
66
    const       VALIDATED                           = 'VALIDATED';
67
    const       REFUSED                             = 'REFUSED';
68
69
    // Hook Status
70
    const       HOOK_NEW                            = "HOOK_NEW";
71
    const       HOOK_IN_PROGRESS                    = "HOOK_IN_PROGRESS";
72
    const       HOOK_ACTIONED                       = "HOOK_ACTIONED";
73
74
    // Hook Variables
75
    // https://docs.mangopay.com/endpoints/v2.01/hooks#e246_the-hook-object
76
    const       HOOK_EVENT_TYPE                     = "EventType";
77
    const       HOOK_RESOURCE_ID                    = "RessourceId";  // Known spelling mistake in MangoPay Api
78
    const       HOOK_DATE                           = "Date";
79
80
    public static function getKYCRefusalArray() : array
81
    {
82
        return [
83
            self::DOCUMENT_UNREADABLE,
84
            self::DOCUMENT_NOT_ACCEPTED,
85
            self::DOCUMENT_HAS_EXPIRED,
86
            self::DOCUMENT_INCOMPLETE,
87
            self::DOCUMENT_MISSING,
88
            self::DOCUMENT_DO_NOT_MATCH_USER_DATA,
89
            self::DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA,
90
            self::SPECIFIC_CASE,
91
            self::DOCUMENT_FALSIFIED,
92
            self::UNDERAGE_PERSON,
93
            self::OTHER,
94
            self::TRIGGER_PEPS,
95
            self::TRIGGER_SANCTIONS_LISTS,
96
            self::TRIGGER_INTERPOL
97
        ];
98
    }
99
100
    public static function getIncomeRangeFromId(int $id) : string
101
    {
102
        switch ($id) {
103
            case 1:
104
                $range = "incomes <18K€";
105
                break;
106
            case 2:
107
                $range = "incomes between 18 and 30K€";
108
                break;
109
            case 3:
110
                $range = "incomes between 30 and 50K€";
111
                break;
112
            case 4:
113
                $range = "incomes between 50 and 80K€";
114
                break;
115
            case 5:
116
                $range = "incomes between 80 and 120K€";
117
                break;
118
            case 6:
119
                $range = "incomes>120K€";
120
                break;
121
            default:
122
                $range = "Unknown range";
123
        }
124
125
        return $range;
126
    }
127
128
    public static function isPersonTypeOk($personType)
129
    {
130
        return in_array($personType, self::getPersonTypeArray());
131
    }
132
133
    public static function getPersonTypeArray()
134
    {
135
        return [
136
            self::NATURAL_PERSON_TYPE,
137
            self::LEGAL_PERSON_TYPE
138
        ];
139
    }
140
141
    public static function isDocumentTypeOk($documentType)
142
    {
143
        return in_array($documentType, self::getDocumentTypeArray());
144
    }
145
146
    public static function getDocumentTypeArray()
147
    {
148
        return [
149
            self::IDENTITY_PROOF,
150
            self::REGISTRATION_PROOF,
151
            self::ARTICLES_OF_ASSOCIATION,
152
            self::SHAREHOLDER_DECLARATION,
153
            self::ADDRESS_PROOF
154
        ];
155
    }
156
157
    //  https://docs.mangopay.com/endpoints/v2.01/hooks#e246_the-hook-object
158
    // 16th Jan 2017
159
160
    public static function isEventTypeOk($eventType)
161
    {
162
        return in_array($eventType, self::getAllEventTypes());
163
    }
164
165
    public static function isEventTypeToDoWithKYC($eventType)
166
    {
167
        return substr($eventType, 0,4) == "KYC_";
168
    }
169
170
    public static function getAllEventTypes()
171
    {
172
        return [
173
            'PAYIN_NORMAL_CREATED',
174
            'PAYIN_NORMAL_SUCCEEDED',
175
            'PAYIN_NORMAL_FAILED',
176
177
            'PAYOUT_NORMAL_CREATED',
178
            'PAYOUT_NORMAL_SUCCEEDED',
179
            'PAYOUT_NORMAL_FAILED',
180
181
            'TRANSFER_NORMAL_CREATED',
182
            'TRANSFER_NORMAL_SUCCEEDED',
183
            'TRANSFER_NORMAL_FAILED',
184
185
            'PAYIN_REFUND_CREATED',
186
            'PAYIN_REFUND_SUCCEEDED',
187
            'PAYIN_REFUND_FAILED',
188
189
            'PAYOUT_REFUND_CREATED',
190
            'PAYOUT_REFUND_SUCCEEDED',
191
            'PAYOUT_REFUND_FAILED',
192
193
            'TRANSFER_REFUND_CREATED',
194
            'TRANSFER_REFUND_SUCCEEDED',
195
            'TRANSFER_REFUND_FAILED',
196
197
            'PAYIN_REPUDIATION_CREATED',
198
            'PAYIN_REPUDIATION_SUCCEEDED',
199
            'PAYIN_REPUDIATION_FAILED',
200
201
            'KYC_CREATED',
202
            'KYC_SUCCEEDED',
203
            'KYC_FAILED',
204
            'KYC_VALIDATION_ASKED',
205
206
            'DISPUTE_DOCUMENT_CREATED',
207
            'DISPUTE_DOCUMENT_VALIDATION_ASKED',
208
            'DISPUTE_DOCUMENT_SUCCEEDED',
209
            'DISPUTE_DOCUMENT_FAILED',
210
211
            'DISPUTE_CREATED',
212
            'DISPUTE_SUBMITTED',
213
            'DISPUTE_ACTION_REQUIRED',
214
            'DISPUTE_FURTHER_ACTION_REQUIRED',
215
            'DISPUTE_CLOSED',
216
            'DISPUTE_SENT_TO_BANK',
217
218
            'TRANSFER_SETTLEMENT_CREATED',
219
            'TRANSFER_SETTLEMENT_SUCCEEDED',
220
            'TRANSFER_SETTLEMENT_FAILED',
221
222
            'MANDATE_CREATED',
223
            'MANDATED_FAILED',
224
            'MANDATE_ACTIVATED',
225
            'MANDATE_SUBMITTED',
226
227
            'PREAUTHORIZATION_PAYMENT_WAITING',
228
            // (not currently available) 'PREAUTHORIZATION_PAYMENT_EXPIRED',
0 ignored issues
show
Unused Code Comprehensibility introduced by
37% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
229
            'PREAUTHORIZATION_PAYMENT_CANCELED',
230
            'PREAUTHORIZATION_PAYMENT_VALIDATED',
231
232
        ];
233
    }
234
}