Completed
Push — master ( 961164...c5e573 )
by Yasir
01:25
created

Currency   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 272
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 0
dl 0
loc 272
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A getCurrencyIso() 0 8 2
1
<?php
2
3
namespace ipGeolocation;
4
5
/**
6
 * This class provides information about currency based on location
7
 *
8
 * PHP version 7
9
 *
10
 * @author yasir khurshid <[email protected]>
11
 */
12
13
class Currency
14
{
15
    /**
16
     * Country currency ISO codes
17
     *
18
     * @var array
19
     */
20
    private $currenciesIso = array(
21
        'AD' => 'EUR',
22
        'AE' => 'AED',
23
        'AF' => 'AFN',
24
        'AG' => 'XCD',
25
        'AI' => 'XCD',
26
        'AL' => 'ALL',
27
        'AM' => 'AMD',
28
        'AN' => 'ANG',
29
        'AO' => 'AOA',
30
        'AR' => 'ARS',
31
        'AS' => 'USD',
32
        'AT' => 'EUR',
33
        'AU' => 'AUD',
34
        'AW' => 'AWG',
35
        'AZ' => 'AZN',
36
        'BA' => 'BAM',
37
        'BB' => 'BBD',
38
        'BD' => 'BDT',
39
        'BE' => 'EUR',
40
        'BF' => 'XOF',
41
        'BG' => 'BGN',
42
        'BH' => 'BHD',
43
        'BI' => 'BIF',
44
        'BJ' => 'XOF',
45
        'BL' => 'EUR',
46
        'BM' => 'BMD',
47
        'BN' => 'BND',
48
        'BO' => 'BOB',
49
        'BR' => 'BRL',
50
        'BS' => 'BSD',
51
        'BT' => 'BTN',
52
        'BV' => 'NOK',
53
        'BW' => 'BWP',
54
        'BY' => 'BYN',
55
        'BZ' => 'BZD',
56
        'CA' => 'CAD',
57
        'CC' => 'AUD',
58
        'CD' => 'CDF',
59
        'CF' => 'XAF',
60
        'CG' => 'CDF',
61
        'CH' => 'CHF',
62
        'CI' => 'XOF',
63
        'CK' => 'NZD',
64
        'CL' => 'CLP',
65
        'CM' => 'XAF',
66
        'CN' => 'CNY',
67
        'CO' => 'COP',
68
        'CR' => 'CRC',
69
        'CU' => 'CUP',
70
        'CV' => 'CVE',
71
        'CW' => 'ANG',
72
        'CX' => 'AUD',
73
        'CY' => 'EUR',
74
        'CZ' => 'CZK',
75
        'DE' => 'EUR',
76
        'DJ' => 'DJF',
77
        'DK' => 'DKK',
78
        'DM' => 'XCD',
79
        'DO' => 'DOP',
80
        'DZ' => 'DZD',
81
        'EC' => 'USD',
82
        'EE' => 'EUR',
83
        'EG' => 'EGP',
84
        'EH' => 'MAD',
85
        'ER' => 'ERN',
86
        'ES' => 'EUR',
87
        'ET' => 'ETB',
88
        'FI' => 'EUR',
89
        'FJ' => 'FJD',
90
        'FK' => 'FKP',
91
        'FM' => 'USD',
92
        'FO' => 'DKK',
93
        'FR' => 'EUR',
94
        'GA' => 'XAF',
95
        'GB' => 'GBP',
96
        'GD' => 'XCD',
97
        'GE' => 'GEL',
98
        'GF' => 'EUR',
99
        'GG' => 'GGP',
100
        'GH' => 'GHS',
101
        'GI' => 'GIP',
102
        'GL' => 'DKK',
103
        'GM' => 'GMD',
104
        'GN' => 'GNF',
105
        'GP' => 'EUR',
106
        'GQ' => 'XAF',
107
        'GR' => 'EUR',
108
        'GS' => 'GBP',
109
        'GT' => 'GTQ',
110
        'GU' => 'USD',
111
        'GW' => 'XOF',
112
        'GY' => 'GYD',
113
        'HK' => 'HKD',
114
        'HM' => 'AUD',
115
        'HN' => 'HNL',
116
        'HR' => 'HRK',
117
        'HT' => 'HTG',
118
        'HU' => 'HUF',
119
        'ID' => 'IDR',
120
        'IE' => 'EUR',
121
        'IL' => 'ILS',
122
        'IM' => 'IMP',
123
        'IN' => 'INR',
124
        'IO' => 'USD',
125
        'IQ' => 'IQD',
126
        'IR' => 'IRR',
127
        'IS' => 'ISK',
128
        'IT' => 'EUR',
129
        'JE' => 'JEP',
130
        'JM' => 'JMD',
131
        'JO' => 'JOD',
132
        'JP' => 'JPY',
133
        'KE' => 'KES',
134
        'KG' => 'KGS',
135
        'KH' => 'KHR',
136
        'KI' => 'AUD',
137
        'KM' => 'KMF',
138
        'KN' => 'XCD',
139
        'KP' => 'KPW',
140
        'KR' => 'KRW',
141
        'KW' => 'KWD',
142
        'KY' => 'KYD',
143
        'KZ' => 'KZT',
144
        'LA' => 'LAK',
145
        'LB' => 'LBP',
146
        'LC' => 'XCD',
147
        'LI' => 'CHF',
148
        'LK' => 'LKR',
149
        'LR' => 'LRD',
150
        'LS' => 'LSL',
151
        'LT' => 'EUR',
152
        'LU' => 'EUR',
153
        'LV' => 'EUR',
154
        'LY' => 'LYD',
155
        'MA' => 'MAD',
156
        'MC' => 'EUR',
157
        'MD' => 'MDL',
158
        'ME' => 'EUR',
159
        'MG' => 'MGA',
160
        'MH' => 'USD',
161
        'MK' => 'MKD',
162
        'ML' => 'XOF',
163
        'MM' => 'MMK',
164
        'MN' => 'MNT',
165
        'MO' => 'MOP',
166
        'MP' => 'USD',
167
        'MQ' => 'EUR',
168
        'MR' => 'MRO',
169
        'MS' => 'XCD',
170
        'MT' => 'EUR',
171
        'MU' => 'MUR',
172
        'MV' => 'MVR',
173
        'MW' => 'MWK',
174
        'MX' => 'MXN',
175
        'MY' => 'MYR',
176
        'MZ' => 'MZN',
177
        'NA' => 'NAD',
178
        'NC' => 'XPF',
179
        'NE' => 'XOF',
180
        'NF' => 'AUD',
181
        'NG' => 'NGN',
182
        'NI' => 'NIO',
183
        'NL' => 'EUR',
184
        'NO' => 'NOK',
185
        'NP' => 'NPR',
186
        'NR' => 'AUD',
187
        'NU' => 'NZD',
188
        'NZ' => 'NZD',
189
        'OM' => 'OMR',
190
        'PA' => 'PAB',
191
        'PE' => 'PEN',
192
        'PF' => 'XPF',
193
        'PG' => 'PGK',
194
        'PH' => 'PHP',
195
        'PK' => 'PKR',
196
        'PL' => 'PLN',
197
        'PM' => 'EUR',
198
        'PN' => 'GBP',
199
        'PR' => 'USD',
200
        'PS' => 'ILS',
201
        'PT' => 'EUR',
202
        'PW' => 'USD',
203
        'PY' => 'PYG',
204
        'QA' => 'QAR',
205
        'RE' => 'EUR',
206
        'RO' => 'RON',
207
        'RS' => 'RSD',
208
        'RU' => 'RUB',
209
        'RW' => 'RWF',
210
        'SA' => 'SAR',
211
        'SB' => 'SBD',
212
        'SC' => 'SCR',
213
        'SD' => 'SDG',
214
        'SE' => 'SEK',
215
        'SG' => 'SGD',
216
        'SH' => 'SHP',
217
        'SI' => 'EUR',
218
        'SJ' => 'NOK',
219
        'SK' => 'EUR',
220
        'SL' => 'SLL',
221
        'SM' => 'EUR',
222
        'SN' => 'XOF',
223
        'SO' => 'SOS',
224
        'SR' => 'SRD',
225
        'SS' => 'SSP',
226
        'ST' => 'STD',
227
        'SV' => 'USD',
228
        'SX' => 'ANG',
229
        'SY' => 'SYP',
230
        'SZ' => 'SZL',
231
        'TC' => 'USD',
232
        'TD' => 'XAF',
233
        'TF' => 'EUR',
234
        'TG' => 'XOF',
235
        'TH' => 'THB',
236
        'TJ' => 'TJS',
237
        'TK' => 'NZD',
238
        'TL' => 'USD',
239
        'TM' => 'TMT',
240
        'TN' => 'TND',
241
        'TO' => 'TOP',
242
        'TR' => 'TRY',
243
        'TT' => 'TTD',
244
        'TV' => 'AUD',
245
        'TW' => 'TWD',
246
        'TZ' => 'TZS',
247
        'UA' => 'UAH',
248
        'UG' => 'UGX',
249
        'US' => 'USD',
250
        'UY' => 'UYU',
251
        'UZ' => 'UZS',
252
        'VA' => 'EUR',
253
        'VC' => 'XCD',
254
        'VE' => 'VEF',
255
        'VG' => 'USD',
256
        'VI' => 'USD',
257
        'VN' => 'VND',
258
        'VU' => 'VUV',
259
        'WF' => 'XPF',
260
        'WS' => 'WST',
261
        'XK' => 'EUR',
262
        'YE' => 'YER',
263
        'YT' => 'EUR',
264
        'ZA' => 'ZAR',
265
        'ZM' => 'ZMK',
266
        'ZW' => 'ZWL',
267
    );
268
269
    /**
270
     * Return currenncy Iso code from country Iso code
271
     *
272
     * @param string $countryIso Country Iso Code
273
     *
274
     * @return string
275
     */
276 2
    public function getCurrencyIso(string $countryIso): string
277
    {
278 2
        if (isset($this->currenciesIso[$countryIso])) {
279 2
            return $this->currenciesIso[$countryIso];
280
        }
281
282 1
        return '';
283
    }
284
}
285