Passed
Push — master ( 6c1a60...321d9a )
by Carl
02:50
created

MangoPayConstants::isEventTypeToDoWithPayIn()   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
    // Event types
81
82
    const PAYIN_NORMAL_CREATED                      = "PAYIN_NORMAL_CREATED";
83
    const PAYIN_NORMAL_SUCCEEDED                    = "PAYIN_NORMAL_SUCCEEDED";
84
    const PAYIN_NORMAL_FAILED                       = "PAYIN_NORMAL_FAILED";
85
86
    const PAYOUT_NORMAL_CREATED                     = "PAYOUT_NORMAL_CREATED";
87
    const PAYOUT_NORMAL_SUCCEEDED                   = "PAYOUT_NORMAL_SUCCEEDED";
88
    const PAYOUT_NORMAL_FAILED                      = "PAYOUT_NORMAL_FAILED";
89
90
    const TRANSFER_NORMAL_CREATED                   = "TRANSFER_NORMAL_CREATED";
91
    const TRANSFER_NORMAL_SUCCEEDED                 = "TRANSFER_NORMAL_SUCCEEDED";
92
    const TRANSFER_NORMAL_FAILED                    = "TRANSFER_NORMAL_FAILED";
93
94
    const PAYIN_REFUND_CREATED                      = "PAYIN_REFUND_CREATED";
95
    const PAYIN_REFUND_SUCCEEDED                    = "PAYIN_REFUND_SUCCEEDED";
96
    const PAYIN_REFUND_FAILED                       = "PAYIN_REFUND_FAILED";
97
98
    const PAYOUT_REFUND_CREATED                     = "PAYOUT_REFUND_CREATED";
99
    const PAYOUT_REFUND_SUCCEEDED                   = "PAYOUT_REFUND_SUCCEEDED";
100
    const PAYOUT_REFUND_FAILED                      = "PAYOUT_REFUND_FAILED";
101
102
    const TRANSFER_REFUND_CREATED                   = "TRANSFER_REFUND_CREATED";
103
    const TRANSFER_REFUND_SUCCEEDED                 = "TRANSFER_REFUND_SUCCEEDED";
104
    const TRANSFER_REFUND_FAILED                    = "TRANSFER_REFUND_FAILED";
105
106
    const PAYIN_REPUDIATION_CREATED                 = "PAYIN_REPUDIATION_CREATED";
107
    const PAYIN_REPUDIATION_SUCCEEDED               = "PAYIN_REPUDIATION_SUCCEEDED";
108
    const PAYIN_REPUDIATION_FAILED                  = "PAYIN_REPUDIATION_FAILED";
109
110
    const KYC_CREATED                               = "KYC_CREATED";
111
    const KYC_SUCCEEDED                             = "KYC_SUCCEEDED";
112
    const KYC_FAILED                                = "KYC_FAILED";
113
    const KYC_VALIDATION_ASKED                      = "KYC_VALIDATION_ASKED";
114
115
    const DISPUTE_DOCUMENT_CREATED                  = "DISPUTE_DOCUMENT_CREATED";
116
    const DISPUTE_DOCUMENT_VALIDATION_ASKED         = "DISPUTE_DOCUMENT_VALIDATION_ASKED";
117
    const DISPUTE_DOCUMENT_SUCCEEDED                = "DISPUTE_DOCUMENT_SUCCEEDED";
118
    const DISPUTE_DOCUMENT_FAILED                   = "DISPUTE_DOCUMENT_FAILED";
119
120
    const DISPUTE_CREATED                           = "DISPUTE_CREATED";
121
    const DISPUTE_SUBMITTED                         = "DISPUTE_SUBMITTED";
122
    const DISPUTE_ACTION_REQUIRED                   = "DISPUTE_ACTION_REQUIRED";
123
    const DISPUTE_FURTHER_ACTION_REQUIRED           = "DISPUTE_FURTHER_ACTION_REQUIRED";
124
    const DISPUTE_CLOSED                            = "DISPUTE_CLOSED";
125
    const DISPUTE_SENT_TO_BANK                      = "DISPUTE_SENT_TO_BANK";
126
127
    const TRANSFER_SETTLEMENT_CREATED               = "TRANSFER_SETTLEMENT_CREATED";
128
    const TRANSFER_SETTLEMENT_SUCCEEDED             = "TRANSFER_SETTLEMENT_SUCCEEDED";
129
    const TRANSFER_SETTLEMENT_FAILED                = "TRANSFER_SETTLEMENT_FAILED";
130
131
    const MANDATE_CREATED                           = "MANDATE_CREATED";
132
    const MANDATED_FAILED                           = "MANDATED_FAILED";
133
    const MANDATE_ACTIVATED                         = "MANDATE_ACTIVATED";
134
    const MANDATE_SUBMITTED                         = "MANDATE_SUBMITTED";
135
136
    const PREAUTHORIZATION_PAYMENT_WAITING          = "PREAUTHORIZATION_PAYMENT_WAITING";
137
    // (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...
138
    const PREAUTHORIZATION_PAYMENT_CANCELED         = "PREAUTHORIZATION_PAYMENT_CANCELED";
139
    const PREAUTHORIZATION_PAYMENT_VALIDATED        = "PREAUTHORIZATION_PAYMENT_VALIDATED";
140
141
    public static function getKYCRefusalArray() : array
142
    {
143
        return [
144
            self::DOCUMENT_UNREADABLE,
145
            self::DOCUMENT_NOT_ACCEPTED,
146
            self::DOCUMENT_HAS_EXPIRED,
147
            self::DOCUMENT_INCOMPLETE,
148
            self::DOCUMENT_MISSING,
149
            self::DOCUMENT_DO_NOT_MATCH_USER_DATA,
150
            self::DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA,
151
            self::SPECIFIC_CASE,
152
            self::DOCUMENT_FALSIFIED,
153
            self::UNDERAGE_PERSON,
154
            self::OTHER,
155
            self::TRIGGER_PEPS,
156
            self::TRIGGER_SANCTIONS_LISTS,
157
            self::TRIGGER_INTERPOL
158
        ];
159
    }
160
161
    public static function getIncomeRangeFromId(int $id) : string
162
    {
163
        switch ($id) {
164
            case 1:
165
                $range = "incomes <18K€";
166
                break;
167
            case 2:
168
                $range = "incomes between 18 and 30K€";
169
                break;
170
            case 3:
171
                $range = "incomes between 30 and 50K€";
172
                break;
173
            case 4:
174
                $range = "incomes between 50 and 80K€";
175
                break;
176
            case 5:
177
                $range = "incomes between 80 and 120K€";
178
                break;
179
            case 6:
180
                $range = "incomes>120K€";
181
                break;
182
            default:
183
                $range = "Unknown range";
184
        }
185
186
        return $range;
187
    }
188
189
    public static function isPersonTypeOk($personType)
190
    {
191
        return in_array($personType, self::getPersonTypeArray());
192
    }
193
194
    public static function getPersonTypeArray()
195
    {
196
        return [
197
            self::NATURAL_PERSON_TYPE,
198
            self::LEGAL_PERSON_TYPE
199
        ];
200
    }
201
202
    public static function isDocumentTypeOk($documentType)
203
    {
204
        return in_array($documentType, self::getDocumentTypeArray());
205
    }
206
207
    public static function getDocumentTypeArray()
208
    {
209
        return [
210
            self::IDENTITY_PROOF,
211
            self::REGISTRATION_PROOF,
212
            self::ARTICLES_OF_ASSOCIATION,
213
            self::SHAREHOLDER_DECLARATION,
214
            self::ADDRESS_PROOF
215
        ];
216
    }
217
218
    //  https://docs.mangopay.com/endpoints/v2.01/hooks#e246_the-hook-object
219
    // 16th Jan 2017
220
221
    public static function isEventTypeOk($eventType)
222
    {
223
        return in_array($eventType, self::getAllEventTypes());
224
    }
225
226
    public static function isEventTypeToDoWithKYC($eventType)
227
    {
228
        return substr($eventType, 0, 4) == "KYC_";
229
    }
230
231
    public static function isEventTypeToDoWithPayIn($eventType)
232
    {
233
        return substr($eventType, 0, 6) == "PAYIN_";
234
    }
235
236
    public static function getAllEventTypes()
237
    {
238
        return [
239
            self::PAYIN_NORMAL_CREATED,
240
            self::PAYIN_NORMAL_SUCCEEDED,
241
            self::PAYIN_NORMAL_FAILED,
242
243
            self::PAYOUT_NORMAL_CREATED,
244
            self::PAYOUT_NORMAL_SUCCEEDED,
245
            self::PAYOUT_NORMAL_FAILED,
246
247
            self::TRANSFER_NORMAL_CREATED,
248
            self::TRANSFER_NORMAL_SUCCEEDED,
249
            self::TRANSFER_NORMAL_FAILED,
250
251
            self::PAYIN_REFUND_CREATED,
252
            self::PAYIN_REFUND_SUCCEEDED,
253
            self::PAYIN_REFUND_FAILED,
254
255
            self::PAYOUT_REFUND_CREATED,
256
            self::PAYOUT_REFUND_SUCCEEDED,
257
            self::PAYOUT_REFUND_FAILED,
258
259
            self::TRANSFER_REFUND_CREATED,
260
            self::TRANSFER_REFUND_SUCCEEDED,
261
            self::TRANSFER_REFUND_FAILED,
262
263
            self::PAYIN_REPUDIATION_CREATED,
264
            self::PAYIN_REPUDIATION_SUCCEEDED,
265
            self::PAYIN_REPUDIATION_FAILED,
266
267
            self::KYC_CREATED,
268
            self::KYC_SUCCEEDED,
269
            self::KYC_FAILED,
270
            self::KYC_VALIDATION_ASKED,
271
272
            self::DISPUTE_DOCUMENT_CREATED,
273
            self::DISPUTE_DOCUMENT_VALIDATION_ASKED,
274
            self::DISPUTE_DOCUMENT_SUCCEEDED,
275
            self::DISPUTE_DOCUMENT_FAILED,
276
277
            self::DISPUTE_CREATED,
278
            self::DISPUTE_SUBMITTED,
279
            self::DISPUTE_ACTION_REQUIRED,
280
            self::DISPUTE_FURTHER_ACTION_REQUIRED,
281
            self::DISPUTE_CLOSED,
282
            self::DISPUTE_SENT_TO_BANK,
283
284
            self::TRANSFER_SETTLEMENT_CREATED,
285
            self::TRANSFER_SETTLEMENT_SUCCEEDED,
286
            self::TRANSFER_SETTLEMENT_FAILED,
287
288
            self::MANDATE_CREATED,
289
            self::MANDATED_FAILED,
290
            self::MANDATE_ACTIVATED,
291
            self::MANDATE_SUBMITTED,
292
293
            self::PREAUTHORIZATION_PAYMENT_WAITING,
294
            // (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...
295
            self::PREAUTHORIZATION_PAYMENT_CANCELED,
296
            self::PREAUTHORIZATION_PAYMENT_VALIDATED
297
298
        ];
299
    }
300
}