Passed
Branch master (837a03)
by Tomáš
02:48
created

Currency::all()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 36
Code Lines 34

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 34
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 36
rs 9.376
1
<?php
2
3
namespace Inspirum\Balikobot\Definitions;
4
5
use InvalidArgumentException;
6
7
final class Currency
8
{
9
    /**
10
     * Dolar
11
     *
12
     * @var string
13
     */
14
    public const AUD = 'AUD';
15
16
    /**
17
     * Real
18
     *
19
     * @var string
20
     */
21
    public const BRL = 'BRL';
22
23
    /**
24
     * Lev
25
     *
26
     * @var string
27
     */
28
    public const BGN = 'BGN';
29
30
    /**
31
     * Renminbi
32
     *
33
     * @var string
34
     */
35
    public const CNY = 'CNY';
36
37
    /**
38
     * Koruna
39
     *
40
     * @var string
41
     */
42
    public const DKK = 'DKK';
43
44
    /**
45
     * Euro
46
     *
47
     * @var string
48
     */
49
    public const EUR = 'EUR';
50
51
    /**
52
     * Koruna
53
     *
54
     * @var string
55
     */
56
    public const CZK = 'CZK';
57
58
    /**
59
     * Peso
60
     *
61
     * @var string
62
     */
63
    public const PHP = 'PHP';
64
65
    /**
66
     * Dolar
67
     *
68
     * @var string
69
     */
70
    public const HKD = 'HKD';
71
72
    /**
73
     * Kuna
74
     *
75
     * @var string
76
     */
77
    public const HRK = 'HRK';
78
79
    /**
80
     * Rupie
81
     *
82
     * @var string
83
     */
84
    public const INR = 'INR';
85
86
    /**
87
     * Rupie
88
     *
89
     * @var string
90
     */
91
    public const IDR = 'IDR';
92
93
    /**
94
     * Šekel
95
     *
96
     * @var string
97
     */
98
    public const ILS = 'ILS';
99
100
    /**
101
     * Jen
102
     *
103
     * @var string
104
     */
105
    public const JPY = 'JPY';
106
107
    /**
108
     * Rand
109
     *
110
     * @var string
111
     */
112
    public const ZAR = 'ZAR';
113
114
    /**
115
     * Won
116
     *
117
     * @var string
118
     */
119
    public const KRW = 'KRW';
120
121
    /**
122
     * Dolar
123
     *
124
     * @var string
125
     */
126
    public const CAD = 'CAD';
127
128
    /**
129
     * Forint
130
     *
131
     * @var string
132
     */
133
    public const HUF = 'HUF';
134
135
    /**
136
     * Ringgit
137
     *
138
     * @var string
139
     */
140
    public const MYR = 'MYR';
141
142
    /**
143
     * Peso
144
     *
145
     * @var string
146
     */
147
    public const MXN = 'MXN';
148
149
    /**
150
     * SDR
151
     *
152
     * @var string
153
     */
154
    public const XDR = 'XDR';
155
156
    /**
157
     * Koruna
158
     *
159
     * @var string
160
     */
161
    public const NOK = 'NOK';
162
163
    /**
164
     * Dolar
165
     *
166
     * @var string
167
     */
168
    public const NZD = 'NZD';
169
170
    /**
171
     * Zlotý
172
     *
173
     * @var string
174
     */
175
    public const PLN = 'PLN';
176
177
    /**
178
     * Nové leu
179
     *
180
     * @var string
181
     */
182
    public const RON = 'RON';
183
184
    /**
185
     * Rubl
186
     *
187
     * @var string
188
     */
189
    public const RUB = 'RUB';
190
191
    /**
192
     * Dolar
193
     *
194
     * @var string
195
     */
196
    public const SGD = 'SGD';
197
198
    /**
199
     * Koruna
200
     *
201
     * @var string
202
     */
203
    public const SEK = 'SEK';
204
205
    /**
206
     * Frank
207
     *
208
     * @var string
209
     */
210
    public const CHF = 'CHF';
211
212
    /**
213
     * Baht
214
     *
215
     * @var string
216
     */
217
    public const THB = 'THB';
218
219
    /**
220
     * Lira
221
     *
222
     * @var string
223
     */
224
    public const TRY = 'TRY';
225
226
    /**
227
     * Dolar
228
     *
229
     * @var string
230
     */
231
    public const USD = 'USD';
232
233
    /**
234
     * Libra
235
     *
236
     * @var string
237
     */
238
    public const GBP = 'GBP';
239
240
    /**
241
     * @return array<string>
242
     */
243
    public static function all(): array
244
    {
245
        return [
246
            self::AUD,
247
            self::BRL,
248
            self::BGN,
249
            self::CNY,
250
            self::DKK,
251
            self::EUR,
252
            self::CZK,
253
            self::PHP,
254
            self::HKD,
255
            self::HRK,
256
            self::INR,
257
            self::IDR,
258
            self::ILS,
259
            self::JPY,
260
            self::ZAR,
261
            self::KRW,
262
            self::CAD,
263
            self::HUF,
264
            self::MYR,
265
            self::MXN,
266
            self::XDR,
267
            self::NOK,
268
            self::NZD,
269
            self::PLN,
270
            self::RON,
271
            self::RUB,
272
            self::SGD,
273
            self::SEK,
274
            self::CHF,
275
            self::THB,
276
            self::TRY,
277
            self::USD,
278
            self::GBP,
279
        ];
280
    }
281
282
    /**
283
     * Validate currency code.
284
     *
285
     * @param string $code
286
     *
287
     * @return void
288
     *
289
     * @throws \InvalidArgumentException
290
     */
291
    public static function validateCode(string $code): void
292
    {
293
        if (in_array($code, self::all()) === false) {
294
            throw new InvalidArgumentException('Invalid currency "' . $code . '" has been entered.');
295
        }
296
    }
297
}
298