adf_builder 0.0.6 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 363203a0be498b2a4c64b3a8468fb9f5107c0a64a53f7931ebfc6b5804763b96
4
- data.tar.gz: 7b1500ef7e17368b62987600f306f216321e5ffdeecfdc439569db89a85cb0d2
3
+ metadata.gz: 1a0aaeb6ecf4e9ee4c73a74b6e74051ee56d53cf75dcba5939fc8349c374a810
4
+ data.tar.gz: feb8b40fd25eb88c1284ae30ad9d8f098296181722bbcec9078850303e61671e
5
5
  SHA512:
6
- metadata.gz: 3966f161aeeff1e4657860bf6f87a6d730ffc689c7ff726353ceb2f84c8a87dd942f64374623bd0e7c0532d22e844e9f7bc275534cd9cda7bd3b04ebbad12986
7
- data.tar.gz: 5eafe81b9c315faf6f9e4f6302fb2f5328916033e3f9ef3507a0618dabcbdf6f59729f2c1dbe772022c4a8ef42b353a06f38ef5bf530048af8e7a54a75d6a6f0
6
+ metadata.gz: 2050252ed990af7a9f4a2d42005f018d5b20a3a05a911c80a40cd4f44499ad28c710826c5a109af80063b332e05d9e1d0e05972880ba67e2bf87afb1b4738e0f
7
+ data.tar.gz: 47eb36b0fe511153cf8ffdaebfc58a642b37e58966081a1069d2b0eb88e632f1adc1f8a76e8c3d3c2888ce50c7c9289541e37b95aed34813dcc063656686f6e4
data/CHANGELOG.md CHANGED
@@ -1,21 +1,32 @@
1
1
  ## [Unreleased]
2
- - Vehicle Structure
3
- - Remaining Optional Tags that are not free text
4
- - odometer
5
- - condition
6
- - colorcombination
7
- - imagetag
8
- - price
2
+ - Vehicle Structure - Remaining Optional Tags that are not free text
9
3
  - option
10
4
  - finance
11
5
  - Expand Structures for all parameters
12
6
  - Customer
13
- - Vehicle
14
7
  - Contact
8
+ - Vehicle
9
+
10
+ ## [0.2.1] - 2021-11-02
11
+ - Add comments to the Vehicle nodes
12
+
13
+ ## [0.1.0] - 2021-08-13
14
+ - Figured out versioning I think
15
+ - Add Price structure to vehicles
16
+ - Added JSON file for all 3 code currencies to validate entry
17
+ - Color Combinations uses function instead of giving raw array so it's
18
+ ```ruby
19
+ item.color_combination(0) # new
20
+ item.color_combinations[0] # old
21
+ ```
22
+
23
+ ## [0.0.8] - 2021-08-12
24
+ - Added all of Provider structure
25
+
26
+ ## [0.0.7] - 2021-08-08
27
+ - Much refactoring so that we can reuse functions
28
+ - Added more functionality to the Vehicle structure including all free text, all same level tags with params, and Color Combination and ImageTag
15
29
 
16
- ### In many moons
17
- - Add Provider structure
18
- - Add Price structure
19
30
 
20
31
  ## [0.0.6] - 2021-08-08
21
32
  - minimal_lead function will remove all previous adf nodes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- adf_builder (0.0.6)
4
+ adf_builder (0.2.0)
5
5
  ox (~> 2.14)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -108,15 +108,28 @@ Outputs
108
108
  </prospect>
109
109
  </adf>
110
110
  ```
111
- Add Vehicle with tags
111
+
112
+ Vehicle with different operations
112
113
 
113
114
  ```ruby
114
115
  builder = AdfBuilder::Builder.new
115
116
  builder.prospect.vehicles.add(2021, 'Toyota', 'Prius', {
116
- interest: :sell,
117
117
  status: :used,
118
- vin: 'XXXXXXXXXX',
119
118
  })
119
+ builder.prospect.vehicles.update_tags_with_free_text(0, {
120
+ bodystyle: 'howdy',
121
+ year: '2000'
122
+ })
123
+ builder.prospect.vehicles.update_odometer(0, 9000, {
124
+ units: 'km'
125
+ })
126
+ builder.prospect.vehicles.update_condition(0, 'ffff')
127
+ builder.prospect.vehicles.update_imagetag(0, 'http://adfxml.info/adf_spec.pdf', {
128
+ width: 400,
129
+ height: 500,
130
+ alttext: 'Howdy'
131
+ })
132
+ puts builder.to_xml
120
133
  ```
121
134
 
122
135
  Outputs
@@ -127,16 +140,55 @@ Outputs
127
140
  <?xml version="1.0"?>
128
141
  <adf>
129
142
  <prospect status="new">
130
- <requestdate>2021-08-04T18:16:31+04:00</requestdate>
131
- <vehicle interest="sell" status="used">
132
- <year>2021</year>
143
+ <requestdate>2021-08-09T00:53:59+04:00</requestdate>
144
+ <customer/>
145
+ <vendor/>
146
+ <vehicle status="used">
147
+ <year>2000</year>
133
148
  <make>Toyota</make>
134
149
  <model>Prius</model>
135
- <vin>XXXXXXXXXX</vin>
150
+ <bodystyle>howdy</bodystyle>
151
+ <odometer units="km">9000</odometer>
152
+ <imagetag width="400" height="500" alttext="Howdy">http://adfxml.info/adf_spec.pdf</imagetag>
136
153
  </vehicle>
137
154
  </prospect>
138
155
  </adf>
156
+ ```
157
+
158
+ Color Combination
159
+
160
+ ```ruby
161
+ builder = AdfBuilder::Builder.new
162
+ builder.prospect.vehicles.add(2021, 'Toyota', 'Prius', {
163
+ status: :used,
164
+ })
165
+ builder.prospect.vehicles.add_color_combination(0, 'black', 'yellow', 1)
166
+ puts builder.to_xml
167
+ ```
139
168
 
169
+ Outputs
170
+
171
+ ```xml
172
+ <?ADF version="1.0"?>
173
+
174
+ <?xml version="1.0"?>
175
+ <adf>
176
+ <prospect status="new">
177
+ <requestdate>2021-08-09T00:56:07+04:00</requestdate>
178
+ <customer/>
179
+ <vendor/>
180
+ <vehicle status="used">
181
+ <year>2021</year>
182
+ <make>Toyota</make>
183
+ <model>Prius</model>
184
+ <colorcombination>
185
+ <interiorcolor>black</interiorcolor>
186
+ <exteriorcolor>yellow</exteriorcolor>
187
+ <preference>1</preference>
188
+ </colorcombination>
189
+ </vehicle>
190
+ </prospect>
191
+ </adf>
140
192
  ```
141
193
 
142
194
  Add Vendor
@@ -199,6 +251,142 @@ Outputs
199
251
  </prospect>
200
252
  </adf>
201
253
  ```
254
+ A complex Provider
255
+
256
+ ```ruby
257
+ builder = AdfBuilder::Builder.new
258
+ provider = builder.prospect.provider
259
+ provider.add('Testing', {part: 'full', type: 'business'})
260
+ provider.update_tags_with_free_text({
261
+ url: 'howdy',
262
+ service: "Nice"
263
+ })
264
+ provider.add_email("test@test.com", {preferredcontact: 0})
265
+ provider.add_phone("+14445556666", {
266
+ type: 'fax',
267
+ time: 'day'
268
+ })
269
+ provider.add_contact("Mr Sir")
270
+ provider.contact.add_phone("+132435523424")
271
+ ```
272
+
273
+ ```xml
274
+ <?ADF version="1.0"?>
275
+
276
+ <?xml version="1.0"?>
277
+ <adf>
278
+ <prospect status="new">
279
+ <requestdate>2021-08-12T18:56:41+04:00</requestdate>
280
+ <customer/>
281
+ <vendor/>
282
+ <provider>
283
+ <name part="full" type="business">Testing</name>
284
+ <url>howdy</url>
285
+ <service>Nice</service>
286
+ <email preferredcontact="0">test@test.com</email>
287
+ <phone type="fax" time="day">+14445556666</phone>
288
+ <contact>
289
+ <name>Mr Sir</name>
290
+ <phone>+132435523424</phone>
291
+ </contact>
292
+ </provider>
293
+ </prospect>
294
+ </adf>
295
+ ```
296
+
297
+ Adding and Updating Price of Vehicle
298
+ ```ruby
299
+ builder = AdfBuilder::Builder.new
300
+ builder.prospect.vehicles.add(2021, 'Toyota', 'Prius', {
301
+ status: :used,
302
+ })
303
+
304
+ builder.prospect.vehicles.add_price(0,23400, {
305
+ type: 'quote',
306
+ currency: 'blah',
307
+ source: "YES"
308
+ })
309
+
310
+ puts builder.to_xml
311
+
312
+ builder.prospect.vehicles.price(0).update(3444, {
313
+ currency: 'USD'
314
+ })
315
+
316
+ puts builder.to_xml
317
+ ```
318
+
319
+ Outputs
320
+ ```xml
321
+ <?ADF version="1.0"?>
322
+
323
+ <?xml version="1.0"?>
324
+ <adf>
325
+ <prospect status="new">
326
+ <requestdate>2021-08-13T13:28:50+04:00</requestdate>
327
+ <customer/>
328
+ <vendor/>
329
+ <vehicle status="used">
330
+ <year>2021</year>
331
+ <make>Toyota</make>
332
+ <model>Prius</model>
333
+ <price type="quote" source="YES">23400</price>
334
+ </vehicle>
335
+ </prospect>
336
+ </adf>
337
+ ```
338
+
339
+ ```xml
340
+ <?ADF version="1.0"?>
341
+
342
+ <?xml version="1.0"?>
343
+
344
+ <adf>
345
+ <prospect status="new">
346
+ <requestdate>2021-08-13T13:28:50+04:00</requestdate>
347
+ <customer/>
348
+ <vendor/>
349
+ <vehicle status="used">
350
+ <year>2021</year>
351
+ <make>Toyota</make>
352
+ <model>Prius</model>
353
+ <price type="quote" source="YES" currency="USD">3444</price>
354
+ </vehicle>
355
+ </prospect>
356
+ </adf>
357
+ ```
358
+
359
+ Adding comments to Vehicle
360
+ ```ruby
361
+ builder = AdfBuilder::Builder.new
362
+ builder.prospect.vehicles.add(2021, 'Toyota', 'Prius', {
363
+ status: :used,
364
+ })
365
+
366
+ builder.prospect.vehicles.add_comments(0, "This is a comment")
367
+
368
+ puts builder.to_xml
369
+ ```
370
+
371
+ Outputs
372
+ ```xml
373
+ <?ADF version="1.0"?>
374
+
375
+ <?xml version="1.0"?>
376
+ <adf>
377
+ <prospect status="new">
378
+ <requestdate>2021-11-02T16:35:43+04:00</requestdate>
379
+ <customer/>
380
+ <vendor/>
381
+ <vehicle status="used">
382
+ <year>2021</year>
383
+ <make>Toyota</make>
384
+ <model>Prius</model>
385
+ <comments>This is a comment</comments>
386
+ </vehicle>
387
+ </prospect>
388
+ </adf>
389
+ ```
202
390
  ## Development
203
391
 
204
392
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -16,6 +16,7 @@ module AdfBuilder
16
16
  @vehicles = Vehicles.new(@prospect)
17
17
  @customer = Customer.new(@prospect)
18
18
  @vendor = Vendor.new(@prospect)
19
+ @provider = Provider.new(@prospect)
19
20
  end
20
21
 
21
22
  def request_date
@@ -34,6 +35,10 @@ module AdfBuilder
34
35
  @vendor
35
36
  end
36
37
 
38
+ def provider
39
+ @provider
40
+ end
41
+
37
42
  # set status to renew
38
43
  def set_renew
39
44
  @prospect[:status] = STATUSES[:resend]
@@ -0,0 +1 @@
1
+ [{"Alphabetic_Code": "AFN", "Currency": "Afghani", "Entity": "AFGHANISTAN", "Minor_Unit": 2, "Numeric_Code": "971", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "\u00c5LAND ISLANDS", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ALL", "Currency": "Lek", "Entity": "ALBANIA", "Minor_Unit": 2, "Numeric_Code": "008", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "DZD", "Currency": "Algerian Dinar", "Entity": "ALGERIA", "Minor_Unit": 2, "Numeric_Code": "012", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "AMERICAN SAMOA", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "ANDORRA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AOA", "Currency": "Kwanza", "Entity": "ANGOLA", "Minor_Unit": 2, "Numeric_Code": "973", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XCD", "Currency": "East Caribbean Dollar", "Entity": "ANGUILLA", "Minor_Unit": 2, "Numeric_Code": "951", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": null, "Currency": "No universal currency", "Entity": "ANTARCTICA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XCD", "Currency": "East Caribbean Dollar", "Entity": "ANTIGUA AND BARBUDA", "Minor_Unit": 2, "Numeric_Code": "951", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ARS", "Currency": "Argentine Peso", "Entity": "ARGENTINA", "Minor_Unit": 2, "Numeric_Code": "032", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AMD", "Currency": "Armenian Dram", "Entity": "ARMENIA", "Minor_Unit": 2, "Numeric_Code": "051", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AWG", "Currency": "Aruban Florin", "Entity": "ARUBA", "Minor_Unit": 2, "Numeric_Code": "533", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AUD", "Currency": "Australian Dollar", "Entity": "AUSTRALIA", "Minor_Unit": 2, "Numeric_Code": "036", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "AUSTRIA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AZN", "Currency": "Azerbaijan Manat", "Entity": "AZERBAIJAN", "Minor_Unit": 2, "Numeric_Code": "944", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BSD", "Currency": "Bahamian Dollar", "Entity": "BAHAMAS (THE)", "Minor_Unit": 2, "Numeric_Code": "044", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BHD", "Currency": "Bahraini Dinar", "Entity": "BAHRAIN", "Minor_Unit": 3, "Numeric_Code": "048", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BDT", "Currency": "Taka", "Entity": "BANGLADESH", "Minor_Unit": 2, "Numeric_Code": "050", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BBD", "Currency": "Barbados Dollar", "Entity": "BARBADOS", "Minor_Unit": 2, "Numeric_Code": "052", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BYN", "Currency": "Belarusian Ruble", "Entity": "BELARUS", "Minor_Unit": 2, "Numeric_Code": "933", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "BELGIUM", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BZD", "Currency": "Belize Dollar", "Entity": "BELIZE", "Minor_Unit": 2, "Numeric_Code": "084", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XOF", "Currency": "CFA Franc BCEAO", "Entity": "BENIN", "Minor_Unit": 0, "Numeric_Code": "952", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BMD", "Currency": "Bermudian Dollar", "Entity": "BERMUDA", "Minor_Unit": 2, "Numeric_Code": "060", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "INR", "Currency": "Indian Rupee", "Entity": "BHUTAN", "Minor_Unit": 2, "Numeric_Code": "356", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BTN", "Currency": "Ngultrum", "Entity": "BHUTAN", "Minor_Unit": 2, "Numeric_Code": "064", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BOB", "Currency": "Boliviano", "Entity": "BOLIVIA (PLURINATIONAL STATE OF)", "Minor_Unit": 2, "Numeric_Code": "068", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BOV", "Currency": "Mvdol", "Entity": "BOLIVIA (PLURINATIONAL STATE OF)", "Minor_Unit": 2, "Numeric_Code": "984", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "BONAIRE, SINT EUSTATIUS AND SABA", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BAM", "Currency": "Convertible Mark", "Entity": "BOSNIA AND HERZEGOVINA", "Minor_Unit": 2, "Numeric_Code": "977", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BWP", "Currency": "Pula", "Entity": "BOTSWANA", "Minor_Unit": 2, "Numeric_Code": "072", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NOK", "Currency": "Norwegian Krone", "Entity": "BOUVET ISLAND", "Minor_Unit": 2, "Numeric_Code": "578", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BRL", "Currency": "Brazilian Real", "Entity": "BRAZIL", "Minor_Unit": 2, "Numeric_Code": "986", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "BRITISH INDIAN OCEAN TERRITORY (THE)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BND", "Currency": "Brunei Dollar", "Entity": "BRUNEI DARUSSALAM", "Minor_Unit": 2, "Numeric_Code": "096", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BGN", "Currency": "Bulgarian Lev", "Entity": "BULGARIA", "Minor_Unit": 2, "Numeric_Code": "975", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XOF", "Currency": "CFA Franc BCEAO", "Entity": "BURKINA FASO", "Minor_Unit": 0, "Numeric_Code": "952", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "BIF", "Currency": "Burundi Franc", "Entity": "BURUNDI", "Minor_Unit": 0, "Numeric_Code": "108", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CVE", "Currency": "Cabo Verde Escudo", "Entity": "CABO VERDE", "Minor_Unit": 2, "Numeric_Code": "132", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KHR", "Currency": "Riel", "Entity": "CAMBODIA", "Minor_Unit": 2, "Numeric_Code": "116", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XAF", "Currency": "CFA Franc BEAC", "Entity": "CAMEROON", "Minor_Unit": 0, "Numeric_Code": "950", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CAD", "Currency": "Canadian Dollar", "Entity": "CANADA", "Minor_Unit": 2, "Numeric_Code": "124", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KYD", "Currency": "Cayman Islands Dollar", "Entity": "CAYMAN ISLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "136", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XAF", "Currency": "CFA Franc BEAC", "Entity": "CENTRAL AFRICAN REPUBLIC (THE)", "Minor_Unit": 0, "Numeric_Code": "950", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XAF", "Currency": "CFA Franc BEAC", "Entity": "CHAD", "Minor_Unit": 0, "Numeric_Code": "950", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CLP", "Currency": "Chilean Peso", "Entity": "CHILE", "Minor_Unit": 0, "Numeric_Code": "152", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CLF", "Currency": "Unidad de Fomento", "Entity": "CHILE", "Minor_Unit": 4, "Numeric_Code": "990", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CNY", "Currency": "Yuan Renminbi", "Entity": "CHINA", "Minor_Unit": 2, "Numeric_Code": "156", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AUD", "Currency": "Australian Dollar", "Entity": "CHRISTMAS ISLAND", "Minor_Unit": 2, "Numeric_Code": "036", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AUD", "Currency": "Australian Dollar", "Entity": "COCOS (KEELING) ISLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "036", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "COP", "Currency": "Colombian Peso", "Entity": "COLOMBIA", "Minor_Unit": 2, "Numeric_Code": "170", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "COU", "Currency": "Unidad de Valor Real", "Entity": "COLOMBIA", "Minor_Unit": 2, "Numeric_Code": "970", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KMF", "Currency": "Comorian Franc", "Entity": "COMOROS (THE)", "Minor_Unit": 0, "Numeric_Code": "174", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CDF", "Currency": "Congolese Franc", "Entity": "CONGO (THE DEMOCRATIC REPUBLIC OF THE)", "Minor_Unit": 2, "Numeric_Code": "976", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XAF", "Currency": "CFA Franc BEAC", "Entity": "CONGO (THE)", "Minor_Unit": 0, "Numeric_Code": "950", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NZD", "Currency": "New Zealand Dollar", "Entity": "COOK ISLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "554", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CRC", "Currency": "Costa Rican Colon", "Entity": "COSTA RICA", "Minor_Unit": 2, "Numeric_Code": "188", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XOF", "Currency": "CFA Franc BCEAO", "Entity": "C\u00d4TE D'IVOIRE", "Minor_Unit": 0, "Numeric_Code": "952", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "HRK", "Currency": "Kuna", "Entity": "CROATIA", "Minor_Unit": 2, "Numeric_Code": "191", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CUP", "Currency": "Cuban Peso", "Entity": "CUBA", "Minor_Unit": 2, "Numeric_Code": "192", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CUC", "Currency": "Peso Convertible", "Entity": "CUBA", "Minor_Unit": 2, "Numeric_Code": "931", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ANG", "Currency": "Netherlands Antillean Guilder", "Entity": "CURA\u00c7AO", "Minor_Unit": 2, "Numeric_Code": "532", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "CYPRUS", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CZK", "Currency": "Czech Koruna", "Entity": "CZECHIA", "Minor_Unit": 2, "Numeric_Code": "203", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "DKK", "Currency": "Danish Krone", "Entity": "DENMARK", "Minor_Unit": 2, "Numeric_Code": "208", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "DJF", "Currency": "Djibouti Franc", "Entity": "DJIBOUTI", "Minor_Unit": 0, "Numeric_Code": "262", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XCD", "Currency": "East Caribbean Dollar", "Entity": "DOMINICA", "Minor_Unit": 2, "Numeric_Code": "951", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "DOP", "Currency": "Dominican Peso", "Entity": "DOMINICAN REPUBLIC (THE)", "Minor_Unit": 2, "Numeric_Code": "214", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "ECUADOR", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EGP", "Currency": "Egyptian Pound", "Entity": "EGYPT", "Minor_Unit": 2, "Numeric_Code": "818", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SVC", "Currency": "El Salvador Colon", "Entity": "EL SALVADOR", "Minor_Unit": 2, "Numeric_Code": "222", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "EL SALVADOR", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XAF", "Currency": "CFA Franc BEAC", "Entity": "EQUATORIAL GUINEA", "Minor_Unit": 0, "Numeric_Code": "950", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ERN", "Currency": "Nakfa", "Entity": "ERITREA", "Minor_Unit": 2, "Numeric_Code": "232", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "ESTONIA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ETB", "Currency": "Ethiopian Birr", "Entity": "ETHIOPIA", "Minor_Unit": 2, "Numeric_Code": "230", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "EUROPEAN UNION", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "FKP", "Currency": "Falkland Islands Pound", "Entity": "FALKLAND ISLANDS (THE) [MALVINAS]", "Minor_Unit": 2, "Numeric_Code": "238", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "DKK", "Currency": "Danish Krone", "Entity": "FAROE ISLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "208", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "FJD", "Currency": "Fiji Dollar", "Entity": "FIJI", "Minor_Unit": 2, "Numeric_Code": "242", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "FINLAND", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "FRANCE", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "FRENCH GUIANA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XPF", "Currency": "CFP Franc", "Entity": "FRENCH POLYNESIA", "Minor_Unit": 0, "Numeric_Code": "953", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "FRENCH SOUTHERN TERRITORIES (THE)", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XAF", "Currency": "CFA Franc BEAC", "Entity": "GABON", "Minor_Unit": 0, "Numeric_Code": "950", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GMD", "Currency": "Dalasi", "Entity": "GAMBIA (THE)", "Minor_Unit": 2, "Numeric_Code": "270", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GEL", "Currency": "Lari", "Entity": "GEORGIA", "Minor_Unit": 2, "Numeric_Code": "981", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "GERMANY", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GHS", "Currency": "Ghana Cedi", "Entity": "GHANA", "Minor_Unit": 2, "Numeric_Code": "936", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GIP", "Currency": "Gibraltar Pound", "Entity": "GIBRALTAR", "Minor_Unit": 2, "Numeric_Code": "292", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "GREECE", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "DKK", "Currency": "Danish Krone", "Entity": "GREENLAND", "Minor_Unit": 2, "Numeric_Code": "208", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XCD", "Currency": "East Caribbean Dollar", "Entity": "GRENADA", "Minor_Unit": 2, "Numeric_Code": "951", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "GUADELOUPE", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "GUAM", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GTQ", "Currency": "Quetzal", "Entity": "GUATEMALA", "Minor_Unit": 2, "Numeric_Code": "320", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GBP", "Currency": "Pound Sterling", "Entity": "GUERNSEY", "Minor_Unit": 2, "Numeric_Code": "826", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GNF", "Currency": "Guinean Franc", "Entity": "GUINEA", "Minor_Unit": 0, "Numeric_Code": "324", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XOF", "Currency": "CFA Franc BCEAO", "Entity": "GUINEA-BISSAU", "Minor_Unit": 0, "Numeric_Code": "952", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GYD", "Currency": "Guyana Dollar", "Entity": "GUYANA", "Minor_Unit": 2, "Numeric_Code": "328", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "HTG", "Currency": "Gourde", "Entity": "HAITI", "Minor_Unit": 2, "Numeric_Code": "332", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "HAITI", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AUD", "Currency": "Australian Dollar", "Entity": "HEARD ISLAND AND McDONALD ISLANDS", "Minor_Unit": 2, "Numeric_Code": "036", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "HOLY SEE (THE)", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "HNL", "Currency": "Lempira", "Entity": "HONDURAS", "Minor_Unit": 2, "Numeric_Code": "340", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "HKD", "Currency": "Hong Kong Dollar", "Entity": "HONG KONG", "Minor_Unit": 2, "Numeric_Code": "344", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "HUF", "Currency": "Forint", "Entity": "HUNGARY", "Minor_Unit": 2, "Numeric_Code": "348", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ISK", "Currency": "Iceland Krona", "Entity": "ICELAND", "Minor_Unit": 0, "Numeric_Code": "352", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "INR", "Currency": "Indian Rupee", "Entity": "INDIA", "Minor_Unit": 2, "Numeric_Code": "356", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "IDR", "Currency": "Rupiah", "Entity": "INDONESIA", "Minor_Unit": 2, "Numeric_Code": "360", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XDR", "Currency": "SDR (Special Drawing Right)", "Entity": "INTERNATIONAL MONETARY FUND (IMF)", "Minor_Unit": null, "Numeric_Code": "960", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "IRR", "Currency": "Iranian Rial", "Entity": "IRAN (ISLAMIC REPUBLIC OF)", "Minor_Unit": 2, "Numeric_Code": "364", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "IQD", "Currency": "Iraqi Dinar", "Entity": "IRAQ", "Minor_Unit": 3, "Numeric_Code": "368", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "IRELAND", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GBP", "Currency": "Pound Sterling", "Entity": "ISLE OF MAN", "Minor_Unit": 2, "Numeric_Code": "826", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ILS", "Currency": "New Israeli Sheqel", "Entity": "ISRAEL", "Minor_Unit": 2, "Numeric_Code": "376", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "ITALY", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "JMD", "Currency": "Jamaican Dollar", "Entity": "JAMAICA", "Minor_Unit": 2, "Numeric_Code": "388", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "JPY", "Currency": "Yen", "Entity": "JAPAN", "Minor_Unit": 0, "Numeric_Code": "392", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GBP", "Currency": "Pound Sterling", "Entity": "JERSEY", "Minor_Unit": 2, "Numeric_Code": "826", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "JOD", "Currency": "Jordanian Dinar", "Entity": "JORDAN", "Minor_Unit": 3, "Numeric_Code": "400", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KZT", "Currency": "Tenge", "Entity": "KAZAKHSTAN", "Minor_Unit": 2, "Numeric_Code": "398", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KES", "Currency": "Kenyan Shilling", "Entity": "KENYA", "Minor_Unit": 2, "Numeric_Code": "404", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AUD", "Currency": "Australian Dollar", "Entity": "KIRIBATI", "Minor_Unit": 2, "Numeric_Code": "036", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KPW", "Currency": "North Korean Won", "Entity": "KOREA (THE DEMOCRATIC PEOPLE\u2019S REPUBLIC OF)", "Minor_Unit": 2, "Numeric_Code": "408", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KRW", "Currency": "Won", "Entity": "KOREA (THE REPUBLIC OF)", "Minor_Unit": 0, "Numeric_Code": "410", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KWD", "Currency": "Kuwaiti Dinar", "Entity": "KUWAIT", "Minor_Unit": 3, "Numeric_Code": "414", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "KGS", "Currency": "Som", "Entity": "KYRGYZSTAN", "Minor_Unit": 2, "Numeric_Code": "417", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "LAK", "Currency": "Lao Kip", "Entity": "LAO PEOPLE\u2019S DEMOCRATIC REPUBLIC (THE)", "Minor_Unit": 2, "Numeric_Code": "418", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "LATVIA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "LBP", "Currency": "Lebanese Pound", "Entity": "LEBANON", "Minor_Unit": 2, "Numeric_Code": "422", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "LSL", "Currency": "Loti", "Entity": "LESOTHO", "Minor_Unit": 2, "Numeric_Code": "426", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ZAR", "Currency": "Rand", "Entity": "LESOTHO", "Minor_Unit": 2, "Numeric_Code": "710", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "LRD", "Currency": "Liberian Dollar", "Entity": "LIBERIA", "Minor_Unit": 2, "Numeric_Code": "430", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "LYD", "Currency": "Libyan Dinar", "Entity": "LIBYA", "Minor_Unit": 3, "Numeric_Code": "434", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CHF", "Currency": "Swiss Franc", "Entity": "LIECHTENSTEIN", "Minor_Unit": 2, "Numeric_Code": "756", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "LITHUANIA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "LUXEMBOURG", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MOP", "Currency": "Pataca", "Entity": "MACAO", "Minor_Unit": 2, "Numeric_Code": "446", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MKD", "Currency": "Denar", "Entity": "MACEDONIA (THE FORMER YUGOSLAV REPUBLIC OF)", "Minor_Unit": 2, "Numeric_Code": "807", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MGA", "Currency": "Malagasy Ariary", "Entity": "MADAGASCAR", "Minor_Unit": 2, "Numeric_Code": "969", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MWK", "Currency": "Malawi Kwacha", "Entity": "MALAWI", "Minor_Unit": 2, "Numeric_Code": "454", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MYR", "Currency": "Malaysian Ringgit", "Entity": "MALAYSIA", "Minor_Unit": 2, "Numeric_Code": "458", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MVR", "Currency": "Rufiyaa", "Entity": "MALDIVES", "Minor_Unit": 2, "Numeric_Code": "462", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XOF", "Currency": "CFA Franc BCEAO", "Entity": "MALI", "Minor_Unit": 0, "Numeric_Code": "952", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "MALTA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "MARSHALL ISLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "MARTINIQUE", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MRO", "Currency": "Ouguiya", "Entity": "MAURITANIA", "Minor_Unit": 2, "Numeric_Code": "478", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MUR", "Currency": "Mauritius Rupee", "Entity": "MAURITIUS", "Minor_Unit": 2, "Numeric_Code": "480", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "MAYOTTE", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XUA", "Currency": "ADB Unit of Account", "Entity": "MEMBER COUNTRIES OF THE AFRICAN DEVELOPMENT BANK GROUP", "Minor_Unit": null, "Numeric_Code": "965", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MXN", "Currency": "Mexican Peso", "Entity": "MEXICO", "Minor_Unit": 2, "Numeric_Code": "484", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MXV", "Currency": "Mexican Unidad de Inversion (UDI)", "Entity": "MEXICO", "Minor_Unit": 2, "Numeric_Code": "979", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "MICRONESIA (FEDERATED STATES OF)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MDL", "Currency": "Moldovan Leu", "Entity": "MOLDOVA (THE REPUBLIC OF)", "Minor_Unit": 2, "Numeric_Code": "498", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "MONACO", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MNT", "Currency": "Tugrik", "Entity": "MONGOLIA", "Minor_Unit": 2, "Numeric_Code": "496", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "MONTENEGRO", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XCD", "Currency": "East Caribbean Dollar", "Entity": "MONTSERRAT", "Minor_Unit": 2, "Numeric_Code": "951", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MAD", "Currency": "Moroccan Dirham", "Entity": "MOROCCO", "Minor_Unit": 2, "Numeric_Code": "504", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MZN", "Currency": "Mozambique Metical", "Entity": "MOZAMBIQUE", "Minor_Unit": 2, "Numeric_Code": "943", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MMK", "Currency": "Kyat", "Entity": "MYANMAR", "Minor_Unit": 2, "Numeric_Code": "104", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NAD", "Currency": "Namibia Dollar", "Entity": "NAMIBIA", "Minor_Unit": 2, "Numeric_Code": "516", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ZAR", "Currency": "Rand", "Entity": "NAMIBIA", "Minor_Unit": 2, "Numeric_Code": "710", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AUD", "Currency": "Australian Dollar", "Entity": "NAURU", "Minor_Unit": 2, "Numeric_Code": "036", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NPR", "Currency": "Nepalese Rupee", "Entity": "NEPAL", "Minor_Unit": 2, "Numeric_Code": "524", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "NETHERLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XPF", "Currency": "CFP Franc", "Entity": "NEW CALEDONIA", "Minor_Unit": 0, "Numeric_Code": "953", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NZD", "Currency": "New Zealand Dollar", "Entity": "NEW ZEALAND", "Minor_Unit": 2, "Numeric_Code": "554", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NIO", "Currency": "Cordoba Oro", "Entity": "NICARAGUA", "Minor_Unit": 2, "Numeric_Code": "558", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XOF", "Currency": "CFA Franc BCEAO", "Entity": "NIGER (THE)", "Minor_Unit": 0, "Numeric_Code": "952", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NGN", "Currency": "Naira", "Entity": "NIGERIA", "Minor_Unit": 2, "Numeric_Code": "566", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NZD", "Currency": "New Zealand Dollar", "Entity": "NIUE", "Minor_Unit": 2, "Numeric_Code": "554", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AUD", "Currency": "Australian Dollar", "Entity": "NORFOLK ISLAND", "Minor_Unit": 2, "Numeric_Code": "036", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "NORTHERN MARIANA ISLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NOK", "Currency": "Norwegian Krone", "Entity": "NORWAY", "Minor_Unit": 2, "Numeric_Code": "578", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "OMR", "Currency": "Rial Omani", "Entity": "OMAN", "Minor_Unit": 3, "Numeric_Code": "512", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "PKR", "Currency": "Pakistan Rupee", "Entity": "PAKISTAN", "Minor_Unit": 2, "Numeric_Code": "586", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "PALAU", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": null, "Currency": "No universal currency", "Entity": "PALESTINE, STATE OF", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "PAB", "Currency": "Balboa", "Entity": "PANAMA", "Minor_Unit": 2, "Numeric_Code": "590", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "PANAMA", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "PGK", "Currency": "Kina", "Entity": "PAPUA NEW GUINEA", "Minor_Unit": 2, "Numeric_Code": "598", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "PYG", "Currency": "Guarani", "Entity": "PARAGUAY", "Minor_Unit": 0, "Numeric_Code": "600", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "PEN", "Currency": "Sol", "Entity": "PERU", "Minor_Unit": 2, "Numeric_Code": "604", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "PHP", "Currency": "Philippine Piso", "Entity": "PHILIPPINES (THE)", "Minor_Unit": 2, "Numeric_Code": "608", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NZD", "Currency": "New Zealand Dollar", "Entity": "PITCAIRN", "Minor_Unit": 2, "Numeric_Code": "554", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "PLN", "Currency": "Zloty", "Entity": "POLAND", "Minor_Unit": 2, "Numeric_Code": "985", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "PORTUGAL", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "PUERTO RICO", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "QAR", "Currency": "Qatari Rial", "Entity": "QATAR", "Minor_Unit": 2, "Numeric_Code": "634", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "R\u00c9UNION", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "RON", "Currency": "Romanian Leu", "Entity": "ROMANIA", "Minor_Unit": 2, "Numeric_Code": "946", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "RUB", "Currency": "Russian Ruble", "Entity": "RUSSIAN FEDERATION (THE)", "Minor_Unit": 2, "Numeric_Code": "643", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "RWF", "Currency": "Rwanda Franc", "Entity": "RWANDA", "Minor_Unit": 0, "Numeric_Code": "646", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "SAINT BARTH\u00c9LEMY", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SHP", "Currency": "Saint Helena Pound", "Entity": "SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA", "Minor_Unit": 2, "Numeric_Code": "654", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XCD", "Currency": "East Caribbean Dollar", "Entity": "SAINT KITTS AND NEVIS", "Minor_Unit": 2, "Numeric_Code": "951", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XCD", "Currency": "East Caribbean Dollar", "Entity": "SAINT LUCIA", "Minor_Unit": 2, "Numeric_Code": "951", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "SAINT MARTIN (FRENCH PART)", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "SAINT PIERRE AND MIQUELON", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XCD", "Currency": "East Caribbean Dollar", "Entity": "SAINT VINCENT AND THE GRENADINES", "Minor_Unit": 2, "Numeric_Code": "951", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "WST", "Currency": "Tala", "Entity": "SAMOA", "Minor_Unit": 2, "Numeric_Code": "882", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "SAN MARINO", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "STD", "Currency": "Dobra", "Entity": "SAO TOME AND PRINCIPE", "Minor_Unit": 2, "Numeric_Code": "678", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SAR", "Currency": "Saudi Riyal", "Entity": "SAUDI ARABIA", "Minor_Unit": 2, "Numeric_Code": "682", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XOF", "Currency": "CFA Franc BCEAO", "Entity": "SENEGAL", "Minor_Unit": 0, "Numeric_Code": "952", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "RSD", "Currency": "Serbian Dinar", "Entity": "SERBIA", "Minor_Unit": 2, "Numeric_Code": "941", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SCR", "Currency": "Seychelles Rupee", "Entity": "SEYCHELLES", "Minor_Unit": 2, "Numeric_Code": "690", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SLL", "Currency": "Leone", "Entity": "SIERRA LEONE", "Minor_Unit": 2, "Numeric_Code": "694", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SGD", "Currency": "Singapore Dollar", "Entity": "SINGAPORE", "Minor_Unit": 2, "Numeric_Code": "702", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ANG", "Currency": "Netherlands Antillean Guilder", "Entity": "SINT MAARTEN (DUTCH PART)", "Minor_Unit": 2, "Numeric_Code": "532", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XSU", "Currency": "Sucre", "Entity": "SISTEMA UNITARIO DE COMPENSACION REGIONAL DE PAGOS \"SUCRE\"", "Minor_Unit": null, "Numeric_Code": "994", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "SLOVAKIA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "SLOVENIA", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SBD", "Currency": "Solomon Islands Dollar", "Entity": "SOLOMON ISLANDS", "Minor_Unit": 2, "Numeric_Code": "090", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SOS", "Currency": "Somali Shilling", "Entity": "SOMALIA", "Minor_Unit": 2, "Numeric_Code": "706", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ZAR", "Currency": "Rand", "Entity": "SOUTH AFRICA", "Minor_Unit": 2, "Numeric_Code": "710", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": null, "Currency": "No universal currency", "Entity": "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SSP", "Currency": "South Sudanese Pound", "Entity": "SOUTH SUDAN", "Minor_Unit": 2, "Numeric_Code": "728", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "SPAIN", "Minor_Unit": 2, "Numeric_Code": "978", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "LKR", "Currency": "Sri Lanka Rupee", "Entity": "SRI LANKA", "Minor_Unit": 2, "Numeric_Code": "144", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SDG", "Currency": "Sudanese Pound", "Entity": "SUDAN (THE)", "Minor_Unit": 2, "Numeric_Code": "938", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SRD", "Currency": "Surinam Dollar", "Entity": "SURINAME", "Minor_Unit": 2, "Numeric_Code": "968", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NOK", "Currency": "Norwegian Krone", "Entity": "SVALBARD AND JAN MAYEN", "Minor_Unit": 2, "Numeric_Code": "578", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SZL", "Currency": "Lilangeni", "Entity": "SWAZILAND", "Minor_Unit": 2, "Numeric_Code": "748", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SEK", "Currency": "Swedish Krona", "Entity": "SWEDEN", "Minor_Unit": 2, "Numeric_Code": "752", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CHF", "Currency": "Swiss Franc", "Entity": "SWITZERLAND", "Minor_Unit": 2, "Numeric_Code": "756", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CHE", "Currency": "WIR Euro", "Entity": "SWITZERLAND", "Minor_Unit": 2, "Numeric_Code": "947", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "CHW", "Currency": "WIR Franc", "Entity": "SWITZERLAND", "Minor_Unit": 2, "Numeric_Code": "948", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "SYP", "Currency": "Syrian Pound", "Entity": "SYRIAN ARAB REPUBLIC", "Minor_Unit": 2, "Numeric_Code": "760", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "TWD", "Currency": "New Taiwan Dollar", "Entity": "TAIWAN (PROVINCE OF CHINA)", "Minor_Unit": 2, "Numeric_Code": "901", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "TJS", "Currency": "Somoni", "Entity": "TAJIKISTAN", "Minor_Unit": 2, "Numeric_Code": "972", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "TZS", "Currency": "Tanzanian Shilling", "Entity": "TANZANIA, UNITED REPUBLIC OF", "Minor_Unit": 2, "Numeric_Code": "834", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "THB", "Currency": "Baht", "Entity": "THAILAND", "Minor_Unit": 2, "Numeric_Code": "764", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "TIMOR-LESTE", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XOF", "Currency": "CFA Franc BCEAO", "Entity": "TOGO", "Minor_Unit": 0, "Numeric_Code": "952", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "NZD", "Currency": "New Zealand Dollar", "Entity": "TOKELAU", "Minor_Unit": 2, "Numeric_Code": "554", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "TOP", "Currency": "Pa\u2019anga", "Entity": "TONGA", "Minor_Unit": 2, "Numeric_Code": "776", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "TTD", "Currency": "Trinidad and Tobago Dollar", "Entity": "TRINIDAD AND TOBAGO", "Minor_Unit": 2, "Numeric_Code": "780", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "TND", "Currency": "Tunisian Dinar", "Entity": "TUNISIA", "Minor_Unit": 3, "Numeric_Code": "788", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "TRY", "Currency": "Turkish Lira", "Entity": "TURKEY", "Minor_Unit": 2, "Numeric_Code": "949", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "TMT", "Currency": "Turkmenistan New Manat", "Entity": "TURKMENISTAN", "Minor_Unit": 2, "Numeric_Code": "934", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "TURKS AND CAICOS ISLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AUD", "Currency": "Australian Dollar", "Entity": "TUVALU", "Minor_Unit": 2, "Numeric_Code": "036", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "UGX", "Currency": "Uganda Shilling", "Entity": "UGANDA", "Minor_Unit": 0, "Numeric_Code": "800", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "UAH", "Currency": "Hryvnia", "Entity": "UKRAINE", "Minor_Unit": 2, "Numeric_Code": "980", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AED", "Currency": "UAE Dirham", "Entity": "UNITED ARAB EMIRATES (THE)", "Minor_Unit": 2, "Numeric_Code": "784", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "GBP", "Currency": "Pound Sterling", "Entity": "UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (THE)", "Minor_Unit": 2, "Numeric_Code": "826", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "UNITED STATES MINOR OUTLYING ISLANDS (THE)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "UNITED STATES OF AMERICA (THE)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USN", "Currency": "US Dollar (Next day)", "Entity": "UNITED STATES OF AMERICA (THE)", "Minor_Unit": 2, "Numeric_Code": "997", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "UYU", "Currency": "Peso Uruguayo", "Entity": "URUGUAY", "Minor_Unit": 2, "Numeric_Code": "858", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "UYI", "Currency": "Uruguay Peso en Unidades Indexadas (URUIURUI)", "Entity": "URUGUAY", "Minor_Unit": 0, "Numeric_Code": "940", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "UZS", "Currency": "Uzbekistan Sum", "Entity": "UZBEKISTAN", "Minor_Unit": 2, "Numeric_Code": "860", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "VUV", "Currency": "Vatu", "Entity": "VANUATU", "Minor_Unit": 0, "Numeric_Code": "548", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "VEF", "Currency": "Bol\u00edvar", "Entity": "VENEZUELA (BOLIVARIAN REPUBLIC OF)", "Minor_Unit": 2, "Numeric_Code": "937", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "VND", "Currency": "Dong", "Entity": "VIET NAM", "Minor_Unit": 0, "Numeric_Code": "704", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "VIRGIN ISLANDS (BRITISH)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "USD", "Currency": "US Dollar", "Entity": "VIRGIN ISLANDS (U.S.)", "Minor_Unit": 2, "Numeric_Code": "840", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XPF", "Currency": "CFP Franc", "Entity": "WALLIS AND FUTUNA", "Minor_Unit": 0, "Numeric_Code": "953", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "MAD", "Currency": "Moroccan Dirham", "Entity": "WESTERN SAHARA", "Minor_Unit": 2, "Numeric_Code": "504", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "YER", "Currency": "Yemeni Rial", "Entity": "YEMEN", "Minor_Unit": 2, "Numeric_Code": "886", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ZMW", "Currency": "Zambian Kwacha", "Entity": "ZAMBIA", "Minor_Unit": 2, "Numeric_Code": "967", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "ZWL", "Currency": "Zimbabwe Dollar", "Entity": "ZIMBABWE", "Minor_Unit": 2, "Numeric_Code": "932", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XBA", "Currency": "Bond Markets Unit European Composite Unit (EURCO)", "Entity": "ZZ01_Bond Markets Unit European_EURCO", "Minor_Unit": null, "Numeric_Code": "955", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XBB", "Currency": "Bond Markets Unit European Monetary Unit (E.M.U.-6)", "Entity": "ZZ02_Bond Markets Unit European_EMU-6", "Minor_Unit": null, "Numeric_Code": "956", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XBC", "Currency": "Bond Markets Unit European Unit of Account 9 (E.U.A.-9)", "Entity": "ZZ03_Bond Markets Unit European_EUA-9", "Minor_Unit": null, "Numeric_Code": "957", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XBD", "Currency": "Bond Markets Unit European Unit of Account 17 (E.U.A.-17)", "Entity": "ZZ04_Bond Markets Unit European_EUA-17", "Minor_Unit": null, "Numeric_Code": "958", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XTS", "Currency": "Codes specifically reserved for testing purposes", "Entity": "ZZ06_Testing_Code", "Minor_Unit": null, "Numeric_Code": "963", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XXX", "Currency": "The codes assigned for transactions where no currency is involved", "Entity": "ZZ07_No_Currency", "Minor_Unit": null, "Numeric_Code": "999", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XAU", "Currency": "Gold", "Entity": "ZZ08_Gold", "Minor_Unit": null, "Numeric_Code": "959", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XPD", "Currency": "Palladium", "Entity": "ZZ09_Palladium", "Minor_Unit": null, "Numeric_Code": "964", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XPT", "Currency": "Platinum", "Entity": "ZZ10_Platinum", "Minor_Unit": null, "Numeric_Code": "962", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "XAG", "Currency": "Silver", "Entity": "ZZ11_Silver", "Minor_Unit": null, "Numeric_Code": "961", "Withdrawal_Date": null, "Withdrawal_Interval": null},{"Alphabetic_Code": "AFA", "Currency": "Afghani", "Entity": "AFGHANISTAN", "Minor_Unit": null, "Numeric_Code": "4", "Withdrawal_Date": "2003-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FIM", "Currency": "Markka", "Entity": "\u00c3\u2026LAND ISLANDS", "Minor_Unit": null, "Numeric_Code": "246", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ALK", "Currency": "Old Lek", "Entity": "ALBANIA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1989-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ADP", "Currency": "Andorran Peseta", "Entity": "ANDORRA", "Minor_Unit": null, "Numeric_Code": "20", "Withdrawal_Date": "2003-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ESP", "Currency": "Spanish Peseta", "Entity": "ANDORRA", "Minor_Unit": null, "Numeric_Code": "724", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "ANDORRA", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "AOK", "Currency": "Kwanza", "Entity": "ANGOLA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1991-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "AON", "Currency": "New Kwanza", "Entity": "ANGOLA", "Minor_Unit": null, "Numeric_Code": "24", "Withdrawal_Date": "2000-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "AOR", "Currency": "Kwanza Reajustado", "Entity": "ANGOLA", "Minor_Unit": null, "Numeric_Code": "982", "Withdrawal_Date": "2000-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ARA", "Currency": "Austral", "Entity": "ARGENTINA", "Minor_Unit": null, "Numeric_Code": "32", "Withdrawal_Date": "1992-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ARP", "Currency": "Peso Argentino", "Entity": "ARGENTINA", "Minor_Unit": null, "Numeric_Code": "32", "Withdrawal_Date": "1985-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ARY", "Currency": "Peso", "Entity": "ARGENTINA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "ARMENIA", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1994-08-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ATS", "Currency": "Schilling", "Entity": "AUSTRIA", "Minor_Unit": null, "Numeric_Code": "40", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "AYM", "Currency": "Azerbaijan Manat", "Entity": "AZERBAIJAN", "Minor_Unit": null, "Numeric_Code": "945", "Withdrawal_Date": "2005-10-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "AZM", "Currency": "Azerbaijanian Manat", "Entity": "AZERBAIJAN", "Minor_Unit": null, "Numeric_Code": "31", "Withdrawal_Date": "2005-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "AZERBAIJAN", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1994-08-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BYR", "Currency": "Belarusian Ruble", "Entity": "BELARUS", "Minor_Unit": null, "Numeric_Code": "974", "Withdrawal_Date": "2017-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BYB", "Currency": "Belarusian Ruble", "Entity": "BELARUS", "Minor_Unit": null, "Numeric_Code": "112", "Withdrawal_Date": "2001-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "BELARUS", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1994-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BEC", "Currency": "Convertible Franc", "Entity": "BELGIUM", "Minor_Unit": null, "Numeric_Code": "993", "Withdrawal_Date": "1990-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BEF", "Currency": "Belgian Franc", "Entity": "BELGIUM", "Minor_Unit": null, "Numeric_Code": "56", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BEL", "Currency": "Financial Franc", "Entity": "BELGIUM", "Minor_Unit": null, "Numeric_Code": "992", "Withdrawal_Date": "1990-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BOP", "Currency": "Peso boliviano", "Entity": "BOLIVIA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1987-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BAD", "Currency": "Dinar", "Entity": "BOSNIA AND HERZEGOVINA", "Minor_Unit": null, "Numeric_Code": "70", "Withdrawal_Date": "1998-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BRB", "Currency": "Cruzeiro", "Entity": "BRAZIL", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1986-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BRC", "Currency": "Cruzado", "Entity": "BRAZIL", "Minor_Unit": null, "Numeric_Code": "76", "Withdrawal_Date": "1989-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BRE", "Currency": "Cruzeiro", "Entity": "BRAZIL", "Minor_Unit": null, "Numeric_Code": "76", "Withdrawal_Date": "1993-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BRN", "Currency": "New Cruzado", "Entity": "BRAZIL", "Minor_Unit": null, "Numeric_Code": "76", "Withdrawal_Date": "1990-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BRR", "Currency": "Cruzeiro Real", "Entity": "BRAZIL", "Minor_Unit": null, "Numeric_Code": "987", "Withdrawal_Date": "1994-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BGJ", "Currency": "Lev A/52", "Entity": "BULGARIA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "BGK", "Currency": "Lev A/62", "Entity": "BULGARIA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "BGL", "Currency": "Lev", "Entity": "BULGARIA", "Minor_Unit": null, "Numeric_Code": "100", "Withdrawal_Date": "2003-11-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "BUK", "Currency": "Kyat", "Entity": "BURMA\u00c2", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1990-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "HRD", "Currency": "Croatian Dinar", "Entity": "CROATIA", "Minor_Unit": null, "Numeric_Code": "191", "Withdrawal_Date": "1995-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "HRK", "Currency": "Croatian Kuna", "Entity": "CROATIA", "Minor_Unit": null, "Numeric_Code": "191", "Withdrawal_Date": "2015-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "CYP", "Currency": "Cyprus Pound", "Entity": "CYPRUS", "Minor_Unit": null, "Numeric_Code": "196", "Withdrawal_Date": "2008-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "CSJ", "Currency": "Krona A/53", "Entity": "CZECHOSLOVAKIA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "CSK", "Currency": "Koruna", "Entity": "CZECHOSLOVAKIA", "Minor_Unit": null, "Numeric_Code": "200", "Withdrawal_Date": "1993-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ECS", "Currency": "Sucre", "Entity": "ECUADOR", "Minor_Unit": null, "Numeric_Code": "218", "Withdrawal_Date": "2000-09-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ECV", "Currency": "Unidad de Valor Constante (UVC)", "Entity": "ECUADOR", "Minor_Unit": null, "Numeric_Code": "983", "Withdrawal_Date": "2000-09-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "GQE", "Currency": "Ekwele", "Entity": "EQUATORIAL GUINEA", "Minor_Unit": null, "Numeric_Code": "226", "Withdrawal_Date": "1986-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "EEK", "Currency": "Kroon", "Entity": "ESTONIA", "Minor_Unit": null, "Numeric_Code": "233", "Withdrawal_Date": "2011-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "XEU", "Currency": "European Currency Unit (E.C.U)", "Entity": "EUROPEAN MONETARY CO-OPERATION FUND (EMCF)", "Minor_Unit": null, "Numeric_Code": "954", "Withdrawal_Date": "1999-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FIM", "Currency": "Markka", "Entity": "FINLAND", "Minor_Unit": null, "Numeric_Code": "246", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "FRANCE", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "FRENCH GUIANA", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "FRENCH SOUTHERN TERRITORIES", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "GEK", "Currency": "Georgian Coupon", "Entity": "GEORGIA", "Minor_Unit": null, "Numeric_Code": "268", "Withdrawal_Date": "1995-10-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "GEORGIA", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1994-04-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "DDM", "Currency": "Mark der DDR", "Entity": "GERMAN DEMOCRATIC REPUBLIC", "Minor_Unit": null, "Numeric_Code": "278", "Withdrawal_Date": null, "Withdrawal_Interval": "1990-07 to 1990-09"},{"Alphabetic_Code": "DEM", "Currency": "Deutsche Mark", "Entity": "GERMANY", "Minor_Unit": null, "Numeric_Code": "276", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "GHC", "Currency": "Cedi", "Entity": "GHANA", "Minor_Unit": null, "Numeric_Code": "288", "Withdrawal_Date": "2008-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "GHP", "Currency": "Ghana Cedi", "Entity": "GHANA", "Minor_Unit": null, "Numeric_Code": "939", "Withdrawal_Date": "2007-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "GRD", "Currency": "Drachma", "Entity": "GREECE", "Minor_Unit": null, "Numeric_Code": "300", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "GUADELOUPE", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "GNE", "Currency": "Syli", "Entity": "GUINEA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1989-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "GNS", "Currency": "Syli", "Entity": "GUINEA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1986-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "GWE", "Currency": "Guinea Escudo", "Entity": "GUINEA-BISSAU", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1978 to 1981"},{"Alphabetic_Code": "GWP", "Currency": "Guinea-Bissau Peso", "Entity": "GUINEA-BISSAU", "Minor_Unit": null, "Numeric_Code": "624", "Withdrawal_Date": "1997-05-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ITL", "Currency": "Italian Lira", "Entity": "HOLY SEE (VATICAN CITY STATE)", "Minor_Unit": null, "Numeric_Code": "380", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ISJ", "Currency": "Old Krona", "Entity": "ICELAND", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "IEP", "Currency": "Irish Pound", "Entity": "IRELAND", "Minor_Unit": null, "Numeric_Code": "372", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ILP", "Currency": "Pound", "Entity": "ISRAEL", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1978 to 1981"},{"Alphabetic_Code": "ILR", "Currency": "Old Shekel", "Entity": "ISRAEL", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "ITL", "Currency": "Italian Lira", "Entity": "ITALY", "Minor_Unit": null, "Numeric_Code": "380", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "KAZAKHSTAN", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1994-05-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "KYRGYZSTAN", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1993-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LAJ", "Currency": "Pathet Lao Kip", "Entity": "LAO", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1989-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LVL", "Currency": "Latvian Lats", "Entity": "LATVIA", "Minor_Unit": null, "Numeric_Code": "428", "Withdrawal_Date": "2014-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LVR", "Currency": "Latvian Ruble", "Entity": "LATVIA", "Minor_Unit": null, "Numeric_Code": "428", "Withdrawal_Date": "1994-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LSM", "Currency": "Loti", "Entity": "LESOTHO", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1985-05-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZAL", "Currency": "Financial Rand", "Entity": "LESOTHO", "Minor_Unit": null, "Numeric_Code": "991", "Withdrawal_Date": "1995-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LTL", "Currency": "Lithuanian Litas", "Entity": "LITHUANIA", "Minor_Unit": null, "Numeric_Code": "440", "Withdrawal_Date": "2014-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LTT", "Currency": "Talonas", "Entity": "LITHUANIA", "Minor_Unit": null, "Numeric_Code": "440", "Withdrawal_Date": "1993-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LUC", "Currency": "Luxembourg Convertible Franc", "Entity": "LUXEMBOURG", "Minor_Unit": null, "Numeric_Code": "989", "Withdrawal_Date": "1990-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LUF", "Currency": "Luxembourg Franc", "Entity": "LUXEMBOURG", "Minor_Unit": null, "Numeric_Code": "442", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "LUL", "Currency": "Luxembourg Financial Franc", "Entity": "LUXEMBOURG", "Minor_Unit": null, "Numeric_Code": "988", "Withdrawal_Date": "1990-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "MGF", "Currency": "Malagasy Franc", "Entity": "MADAGASCAR", "Minor_Unit": null, "Numeric_Code": "450", "Withdrawal_Date": "2004-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "MWK", "Currency": "Kwacha", "Entity": "MALAWI", "Minor_Unit": null, "Numeric_Code": "454", "Withdrawal_Date": "2016-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "MVQ", "Currency": "Maldive Rupee", "Entity": "MALDIVES", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1989-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "MLF", "Currency": "Mali Franc", "Entity": "MALI", "Minor_Unit": null, "Numeric_Code": "466", "Withdrawal_Date": "1984-11-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "MTL", "Currency": "Maltese Lira", "Entity": "MALTA", "Minor_Unit": null, "Numeric_Code": "470", "Withdrawal_Date": "2008-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "MTP", "Currency": "Maltese Pound", "Entity": "MALTA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1983-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "MARTINIQUE", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "MAYOTTE", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "MXP", "Currency": "Mexican Peso", "Entity": "MEXICO", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1993-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "MOLDOVA, REPUBLIC OF", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1993-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "MONACO", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "MZE", "Currency": "Mozambique Escudo", "Entity": "MOZAMBIQUE", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1978 to 1981"},{"Alphabetic_Code": "MZM", "Currency": "Mozambique Metical", "Entity": "MOZAMBIQUE", "Minor_Unit": null, "Numeric_Code": "508", "Withdrawal_Date": "2006-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "NLG", "Currency": "Netherlands Guilder", "Entity": "NETHERLANDS", "Minor_Unit": null, "Numeric_Code": "528", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ANG", "Currency": "Netherlands Antillean Guilder", "Entity": "NETHERLANDS ANTILLES", "Minor_Unit": null, "Numeric_Code": "532", "Withdrawal_Date": "2010-10-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "NIC", "Currency": "Cordoba", "Entity": "NICARAGUA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1990-10-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "PEN", "Currency": "Nuevo Sol", "Entity": "PERU", "Minor_Unit": null, "Numeric_Code": "604", "Withdrawal_Date": "2015-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "PEH", "Currency": "Sol", "Entity": "PERU", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "PEI", "Currency": "Inti", "Entity": "PERU", "Minor_Unit": null, "Numeric_Code": "604", "Withdrawal_Date": "1991-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "PES", "Currency": "Sol", "Entity": "PERU", "Minor_Unit": null, "Numeric_Code": "604", "Withdrawal_Date": "1986-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "PLZ", "Currency": "Zloty", "Entity": "POLAND", "Minor_Unit": null, "Numeric_Code": "616", "Withdrawal_Date": "1997-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "PTE", "Currency": "Portuguese Escudo", "Entity": "PORTUGAL", "Minor_Unit": null, "Numeric_Code": "620", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "R\u00c3\u2030UNION", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ROK", "Currency": "Leu A/52", "Entity": "ROMANIA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "RON", "Currency": "New Romanian Leu", "Entity": "ROMANIA", "Minor_Unit": null, "Numeric_Code": "946", "Withdrawal_Date": "2015-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ROL", "Currency": "Old Leu", "Entity": "ROMANIA", "Minor_Unit": null, "Numeric_Code": "642", "Withdrawal_Date": "2005-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "RUSSIAN FEDERATION", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "2004-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "SAINT MARTIN", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "1999-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "SAINT PIERRE AND MIQUELON", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "FRF", "Currency": "French Franc", "Entity": "SAINT-BARTH\u00c3\u2030LEMY", "Minor_Unit": null, "Numeric_Code": "250", "Withdrawal_Date": "1999-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ITL", "Currency": "Italian Lira", "Entity": "SAN MARINO", "Minor_Unit": null, "Numeric_Code": "380", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "CSD", "Currency": "Serbian Dinar", "Entity": "SERBIA AND MONTENEGRO", "Minor_Unit": null, "Numeric_Code": "891", "Withdrawal_Date": "2006-10-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "EUR", "Currency": "Euro", "Entity": "SERBIA AND MONTENEGRO", "Minor_Unit": null, "Numeric_Code": "978", "Withdrawal_Date": "2006-10-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "SKK", "Currency": "Slovak Koruna", "Entity": "SLOVAKIA", "Minor_Unit": null, "Numeric_Code": "703", "Withdrawal_Date": "2009-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "SIT", "Currency": "Tolar", "Entity": "SLOVENIA", "Minor_Unit": null, "Numeric_Code": "705", "Withdrawal_Date": "2007-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZAL", "Currency": "Financial Rand", "Entity": "SOUTH AFRICA", "Minor_Unit": null, "Numeric_Code": "991", "Withdrawal_Date": "1995-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "SDG", "Currency": "Sudanese Pound", "Entity": "SOUTH SUDAN", "Minor_Unit": null, "Numeric_Code": "938", "Withdrawal_Date": "2012-09-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RHD", "Currency": "Rhodesian Dollar", "Entity": "SOUTHERN RHODESIA\u00c2", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1978 to 1981"},{"Alphabetic_Code": "ESA", "Currency": "Spanish Peseta", "Entity": "SPAIN", "Minor_Unit": null, "Numeric_Code": "996", "Withdrawal_Date": null, "Withdrawal_Interval": "1978 to 1981"},{"Alphabetic_Code": "ESB", "Currency": "\"A\" Account (convertible Peseta Account)", "Entity": "SPAIN", "Minor_Unit": null, "Numeric_Code": "995", "Withdrawal_Date": "1994-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ESP", "Currency": "Spanish Peseta", "Entity": "SPAIN", "Minor_Unit": null, "Numeric_Code": "724", "Withdrawal_Date": "2002-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "SDD", "Currency": "Sudanese Dinar", "Entity": "SUDAN", "Minor_Unit": null, "Numeric_Code": "736", "Withdrawal_Date": "2007-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "SDP", "Currency": "Sudanese Pound", "Entity": "SUDAN", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1998-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "SRG", "Currency": "Surinam Guilder", "Entity": "SURINAME", "Minor_Unit": null, "Numeric_Code": "740", "Withdrawal_Date": "2003-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "CHC", "Currency": "WIR Franc (for electronic)", "Entity": "SWITZERLAND", "Minor_Unit": null, "Numeric_Code": "948", "Withdrawal_Date": "2004-11-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "TAJIKISTAN", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1995-05-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "TJR", "Currency": "Tajik Ruble", "Entity": "TAJIKISTAN", "Minor_Unit": null, "Numeric_Code": "762", "Withdrawal_Date": "2001-04-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "IDR", "Currency": "Rupiah", "Entity": "TIMOR-LESTE", "Minor_Unit": null, "Numeric_Code": "360", "Withdrawal_Date": "2002-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "TPE", "Currency": "Timor Escudo", "Entity": "TIMOR-LESTE", "Minor_Unit": null, "Numeric_Code": "626", "Withdrawal_Date": "2002-11-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "TRL", "Currency": "Old Turkish Lira", "Entity": "TURKEY", "Minor_Unit": null, "Numeric_Code": "792", "Withdrawal_Date": "2005-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "TRY", "Currency": "New Turkish Lira", "Entity": "TURKEY", "Minor_Unit": null, "Numeric_Code": "949", "Withdrawal_Date": "2009-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "TURKMENISTAN", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1993-10-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "TMM", "Currency": "Turkmenistan Manat", "Entity": "TURKMENISTAN", "Minor_Unit": null, "Numeric_Code": "795", "Withdrawal_Date": "2009-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "UGS", "Currency": "Uganda Shilling", "Entity": "UGANDA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1987-05-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "UGW", "Currency": "Old Shilling", "Entity": "UGANDA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "UAK", "Currency": "Karbovanet", "Entity": "UKRAINE", "Minor_Unit": null, "Numeric_Code": "804", "Withdrawal_Date": "1996-09-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "SUR", "Currency": "Rouble", "Entity": "UNION OF SOVIET SOCIALIST REPUBLICS", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1990-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "USS", "Currency": "US Dollar (Same day)", "Entity": "UNITED STATES", "Minor_Unit": null, "Numeric_Code": "998", "Withdrawal_Date": "2014-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "UYN", "Currency": "Old Uruguay Peso", "Entity": "URUGUAY", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1989-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "UYP", "Currency": "Uruguayan Peso", "Entity": "URUGUAY", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1993-03-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "RUR", "Currency": "Russian Ruble", "Entity": "UZBEKISTAN", "Minor_Unit": null, "Numeric_Code": "810", "Withdrawal_Date": "1994-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "VEB", "Currency": "Bolivar", "Entity": "VENEZUELA", "Minor_Unit": null, "Numeric_Code": "862", "Withdrawal_Date": "2008-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "VEF", "Currency": "Bolivar Fuerte", "Entity": "VENEZUELA", "Minor_Unit": null, "Numeric_Code": "937", "Withdrawal_Date": "2011-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "VEF", "Currency": "Bolivar", "Entity": "VENEZUELA (BOLIVARIAN REPUBLIC OF)", "Minor_Unit": null, "Numeric_Code": "937", "Withdrawal_Date": "2016-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "VNC", "Currency": "Old Dong", "Entity": "VIETNAM", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": null, "Withdrawal_Interval": "1989 to 1990"},{"Alphabetic_Code": "YDD", "Currency": "Yemeni Dinar", "Entity": "YEMEN, DEMOCRATIC", "Minor_Unit": null, "Numeric_Code": "720", "Withdrawal_Date": "1991-09-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "YUD", "Currency": "New Yugoslavian Dinar", "Entity": "YUGOSLAVIA", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1990-01-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "YUM", "Currency": "New Dinar", "Entity": "YUGOSLAVIA", "Minor_Unit": null, "Numeric_Code": "891", "Withdrawal_Date": "2003-07-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "YUN", "Currency": "Yugoslavian Dinar", "Entity": "YUGOSLAVIA", "Minor_Unit": null, "Numeric_Code": "890", "Withdrawal_Date": "1995-11-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZRN", "Currency": "New Zaire", "Entity": "ZAIRE", "Minor_Unit": null, "Numeric_Code": "180", "Withdrawal_Date": "1999-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZRZ", "Currency": "Zaire", "Entity": "ZAIRE", "Minor_Unit": null, "Numeric_Code": "180", "Withdrawal_Date": "1994-02-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZMK", "Currency": "Zambian Kwacha", "Entity": "ZAMBIA", "Minor_Unit": null, "Numeric_Code": "894", "Withdrawal_Date": "2012-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZWC", "Currency": "Rhodesian Dollar", "Entity": "ZIMBABWE", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1989-12-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZWD", "Currency": "Zimbabwe Dollar (old)", "Entity": "ZIMBABWE", "Minor_Unit": null, "Numeric_Code": "716", "Withdrawal_Date": "2006-08-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZWD", "Currency": "Zimbabwe Dollar", "Entity": "ZIMBABWE", "Minor_Unit": null, "Numeric_Code": "716", "Withdrawal_Date": "2008-08-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZWN", "Currency": "Zimbabwe Dollar (new)", "Entity": "ZIMBABWE", "Minor_Unit": null, "Numeric_Code": "942", "Withdrawal_Date": "2006-09-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "ZWR", "Currency": "Zimbabwe Dollar", "Entity": "ZIMBABWE", "Minor_Unit": null, "Numeric_Code": "935", "Withdrawal_Date": "2009-06-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "XFO", "Currency": "Gold-Franc", "Entity": "ZZ01_Gold-Franc", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "2006-10-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "XRE", "Currency": "RINET Funds Code", "Entity": "ZZ02_RINET Funds Code", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "1999-11-06", "Withdrawal_Interval": null},{"Alphabetic_Code": "XFU", "Currency": "UIC-Franc", "Entity": "ZZ05_UIC-Franc", "Minor_Unit": null, "Numeric_Code": null, "Withdrawal_Date": "2013-11-06", "Withdrawal_Interval": null}]
@@ -0,0 +1,55 @@
1
+ module AdfBuilder
2
+ class Provider
3
+
4
+
5
+ FREE_TEXT_OPTIONAL_TAGS = [:service, :url]
6
+
7
+ def initialize(prospect)
8
+ @prospect = prospect
9
+ @provider = nil
10
+ @contact = nil
11
+ end
12
+
13
+ def contact
14
+ @contact
15
+ end
16
+
17
+
18
+ def add(name, params={})
19
+ @provider = Ox::Element.new('provider')
20
+ params.merge!({valid_values: AdfBuilder::Contact::VALID_VALUES, valid_parameters: AdfBuilder::Contact::VALID_PARAMETERS})
21
+ AdfBuilder::Builder.update_node(@provider, :name, name, params)
22
+ @prospect << @provider
23
+ end
24
+
25
+ def add_contact(name, opts={})
26
+ @contact = Contact.new(@provider, name, opts)
27
+ end
28
+
29
+ def add_phone(phone, params={})
30
+ params.merge!({valid_values: AdfBuilder::Contact::VALID_VALUES, valid_parameters: AdfBuilder::Contact::VALID_PARAMETERS})
31
+ AdfBuilder::Builder.update_node(@provider, :phone, phone, params)
32
+ end
33
+
34
+ def add_email(email, params={})
35
+ params.merge!({valid_values: AdfBuilder::Contact::VALID_VALUES, valid_parameters: AdfBuilder::Contact::VALID_PARAMETERS})
36
+ AdfBuilder::Builder.update_node(@provider, :email, email, params)
37
+ end
38
+
39
+ def update_tags_with_free_text(tags)
40
+ tags.each do |key, value|
41
+ if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
42
+ AdfBuilder::Builder.update_node(@provider, key, value)
43
+ end
44
+ end
45
+ end
46
+
47
+ def add_id(index, value, source=nil, sequence=1)
48
+ if @prospect.locate("provider").empty?
49
+ false
50
+ else
51
+ Id.new.add(@prospect.provider(index), value, source, sequence)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -6,50 +6,37 @@ module AdfBuilder
6
6
  phone: [:type, :time, :preferredcontact]
7
7
  }
8
8
 
9
- PHONE_TYPES = [:phone, :fax, :cellphone, :pager]
9
+ VALID_VALUES = {
10
+ name: {
11
+ part: %w[first middle suffix last full],
12
+ type: %w[individual business],
13
+ primarycontact: %w[0 1]
14
+ },
15
+ email: {
16
+ preferredcontact: %w[0 1],
17
+ },
18
+ phone: {
19
+ preferredcontact: %w[0 1],
20
+ type: %w[phone fax cellphone pager],
21
+ time: %w[morning afternoon evening nopreference day]
22
+ }
23
+ }
10
24
 
11
- def initialize(parent_node, name, opts={})
12
- @contact = Ox::Element.new('contact') << (Ox::Element.new('name') << name)
25
+ def initialize(parent_node, name, params={})
26
+ @contact = Ox::Element.new('contact')
27
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
28
+ AdfBuilder::Builder.update_node(@contact, :name, name, params)
13
29
  parent_node << @contact
14
-
15
- opts = whitelabel_opts(opts, :name)
16
-
17
- if opts[:primary_contact]
18
- @contact[:primarycontact] = opts[:primary_contact].to_s
19
- end
20
-
21
- opts.each do |k,v|
22
- @contact.locate("name")[0][k] = v.to_s
23
- end
24
-
25
30
  end
26
31
 
27
- def add_email(email, opts={})
28
- @contact << (Ox::Element.new('email') << email)
29
- opts = whitelabel_opts(opts, :phone)
30
-
31
- opts.each do |k,v|
32
- @contact.email[k] = v.to_s
33
- end
32
+ def add_phone(phone, params={})
33
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
34
+ AdfBuilder::Builder.update_node(@contact, :phone, phone, params)
34
35
  end
35
36
 
36
- def add_phone(phone, opts={})
37
- @contact << (Ox::Element.new('phone') << phone)
38
- opts = whitelabel_opts(opts, :phone)
39
-
40
- opts.each do |k,v|
41
- @contact.phone[k] = v.to_s
42
- end
43
- end
44
-
45
-
46
-
47
-
48
- private
49
-
50
- # clear out the opts that don't match valid keys
51
- def whitelabel_opts(opts, key)
52
- opts.slice(*VALID_PARAMETERS[key])
37
+ def add_email(email, params={})
38
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
39
+ AdfBuilder::Builder.update_node(@contact, :email, email, params)
53
40
  end
54
41
  end
55
42
  end
@@ -0,0 +1,31 @@
1
+ module AdfBuilder
2
+ class ColorCombinations
3
+
4
+ FREE_TEXT_OPTIONAL_TAGS = [:interiorcolor, :exteriorcolor, :preference]
5
+
6
+ def initialize(vehicle)
7
+ @vehicle = vehicle
8
+ @color_combination = nil
9
+ end
10
+
11
+ def add(interior_color, exterior_color, preference)
12
+ @color_combination = Ox::Element.new('colorcombination')
13
+ @color_combination <<
14
+ (Ox::Element.new('interiorcolor') << interior_color) <<
15
+ (Ox::Element.new('exteriorcolor') << exterior_color) <<
16
+ (Ox::Element.new('preference') << preference.to_s)
17
+ @vehicle << @color_combination
18
+ end
19
+
20
+ def update_tags(index, tags)
21
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@vehicle,'colorcombination', index)
22
+ if valid
23
+ tags.each do |key, value|
24
+ if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
25
+ AdfBuilder::Builder.update_node(vehicle, key, value)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,42 @@
1
+ module AdfBuilder
2
+ class Price
3
+
4
+ VALID_PARAMETERS = {
5
+ price: [:type, :currency, :delta, :relativeto, :source]
6
+ }
7
+
8
+ VALID_VALUES = {
9
+ price: {
10
+ type: %w[quote offer msrp invoice call appraisal asking],
11
+ currency: true,
12
+ delta: %w[absolute relative percentage],
13
+ relativeto: %w[msrp invoice],
14
+ source: true
15
+ }
16
+ }
17
+
18
+ def initialize(parent_node, value, params={})
19
+ @parent_node = parent_node
20
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
21
+ validate_currency(params)
22
+ AdfBuilder::Builder.update_node(@parent_node, :price, value, params)
23
+ @price = @parent_node.price
24
+ end
25
+
26
+ def update(value, params={})
27
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
28
+ AdfBuilder::Builder.update_node(@parent_node, :price, value, params)
29
+ end
30
+
31
+ def validate_currency(params)
32
+ code = params[:currency]
33
+ if code
34
+ json = JSON.parse(File.read('./lib/adf_builder/data/iso-4217-currency-codes.json'))
35
+ codes = json.map{|j| j['Alphabetic_Code']}.reject{|j| j.nil?}
36
+ unless codes.include? code
37
+ params.delete(:currency)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,60 +1,100 @@
1
1
  module AdfBuilder
2
2
  class Vehicles
3
- INTEREST_VALUES = {
4
- buy: 'buy',
5
- lease: 'lease',
6
- sell: 'sell',
7
- trade_in: 'trade-in',
8
- test_drive: 'test-drive'
3
+ VALID_PARAMETERS = {
4
+ vehicle: [:interest, :status],
5
+ odometer: [:status, :units],
6
+ imagetag: [:width, :height, :alttext],
9
7
  }
10
8
 
11
- STATUS_VALUES = {
12
- new: 'new',
13
- used: 'used'
9
+ VALID_VALUES = {
10
+ vehicle: {
11
+ interest: %w[buy lease sell trade-in test-drive],
12
+ status: %w[new used]
13
+ },
14
+ odometer: {
15
+ status: %w[unknown rolledover replaced original],
16
+ units: %w[km mi]
17
+ },
18
+ imagetag: {
19
+ width: true,
20
+ height: true,
21
+ alttext: true
22
+ }
14
23
  }
15
24
 
16
- FREE_TEXT_OPTIONAL_TAGS = {
17
- vin: :vin,
18
- stock: :stock,
19
- trim: :trim,
20
- doors: :doors,
21
- bodystyle: :bodystyle,
22
- transmission: :transmission,
23
- pricecomments: :pricecomments,
24
- comments: :comments
25
- }
25
+ FREE_TEXT_OPTIONAL_TAGS = [:year, :make, :model, :vin, :stock,
26
+ :trim, :doors, :bodystyle, :transmission, :pricecomments, :comments]
27
+
28
+ CONDITIONS = %w[excellent good fair poor unknown]
26
29
 
27
30
  def initialize(prospect)
28
31
  @prospect = prospect
32
+ @color_combinations = []
33
+ @prices = []
29
34
  end
30
35
 
31
- def add(year, make, model, tags={})
32
- vehicle = Ox::Element.new('vehicle')
33
-
34
- if tags[:interest]
35
- interest = INTEREST_VALUES[tags[:interest].to_sym]
36
- tags.delete(:interest)
37
- vehicle[:interest] = interest
36
+ def add_color_combination(v_index, interior_color, exterior_color, preference)
37
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', v_index)
38
+ if valid
39
+ cc = ColorCombinations.new(vehicle)
40
+ cc.add(interior_color, exterior_color, preference)
41
+ @color_combinations.push(cc)
38
42
  end
43
+ end
39
44
 
40
- if tags[:status]
41
- status = STATUS_VALUES[tags[:status].to_sym]
42
- tags.delete(:status)
43
- vehicle[:status] = status
44
- end
45
+ def color_combination(index)
46
+ @color_combinations[index]
47
+ end
45
48
 
49
+ def price(index)
50
+ @prices[index]
51
+ end
52
+
53
+ def add(year, make, model, params={})
54
+ vehicle = Ox::Element.new('vehicle')
55
+
56
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
57
+ AdfBuilder::Builder.update_params(vehicle, :vehicle, params)
46
58
 
47
59
  vehicle << (Ox::Element.new('year') << year.to_s)
48
60
  vehicle << (Ox::Element.new('make') << make)
49
61
  vehicle << (Ox::Element.new('model') << model)
50
62
 
51
- tags.each do |key, value|
52
- if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
53
- vehicle << (Ox::Element.new(key.to_s) << value)
54
- end
63
+ @prospect << vehicle
64
+ end
65
+
66
+ def update_odometer(index, value, params={})
67
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
68
+ if valid
69
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
70
+ AdfBuilder::Builder.update_node(vehicle, 'odometer', value, params)
55
71
  end
72
+ end
56
73
 
57
- @prospect << vehicle
74
+ def update_condition(index, value)
75
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
76
+ if valid and CONDITIONS.include? value
77
+ AdfBuilder::Builder.update_node(vehicle, 'condition', value)
78
+ end
79
+ end
80
+
81
+ def update_imagetag(index, value, params={})
82
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
83
+ if valid
84
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
85
+ AdfBuilder::Builder.update_node(vehicle, 'imagetag', value, params)
86
+ end
87
+ end
88
+
89
+ def update_tags_with_free_text(index, tags)
90
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
91
+ if valid
92
+ tags.each do |key, value|
93
+ if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
94
+ AdfBuilder::Builder.update_node(vehicle, key, value)
95
+ end
96
+ end
97
+ end
58
98
  end
59
99
 
60
100
  def add_id(index, value, source=nil, sequence=1)
@@ -65,5 +105,19 @@ module AdfBuilder
65
105
  end
66
106
  end
67
107
 
108
+ def add_price(index, value, params={})
109
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
110
+ if valid
111
+ price = Price.new(vehicle, value, params)
112
+ @prices.push(price)
113
+ end
114
+ end
115
+
116
+ def add_comments(index, value)
117
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
118
+ if valid
119
+ AdfBuilder::Builder.update_node(vehicle, 'comments', value)
120
+ end
121
+ end
68
122
  end
69
123
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AdfBuilder
4
- VERSION = "0.0.6"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/adf_builder.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'ox'
4
+ require 'json'
5
+
4
6
  require_relative "adf_builder/version"
5
7
 
6
8
  # CUSTOMER
@@ -11,14 +13,19 @@ require_relative 'adf_builder/base/base'
11
13
  require_relative 'adf_builder/base/prospect'
12
14
  require_relative 'adf_builder/base/request_date'
13
15
 
16
+ # PROVIDER
17
+ require_relative 'adf_builder/provider/provider'
18
+
14
19
  # SHARED
15
20
  require_relative 'adf_builder/shared/id'
16
21
  require_relative 'adf_builder/shared/contact'
17
22
 
18
23
  # VEHICLES
19
24
  require_relative 'adf_builder/vehicles/vehicles'
25
+ require_relative 'adf_builder/vehicles/colorcombinations'
26
+ require_relative 'adf_builder/vehicles/price'
20
27
 
21
- # VENDER
28
+ # VENDOR
22
29
  require_relative 'adf_builder/vendor/vendor'
23
30
 
24
31
  module AdfBuilder
@@ -106,5 +113,42 @@ module AdfBuilder
106
113
  doc << adf
107
114
  doc
108
115
  end
116
+
117
+ # we will either create a new node with the value or replace the one if it is available
118
+ def self.update_node(parent_node, key, value, params={})
119
+ key = key.to_s
120
+ value = value.to_s
121
+ if parent_node.locate(key).size > 0
122
+ node = parent_node.locate(key).first
123
+ node.replace_text(value)
124
+ else
125
+ node = (Ox::Element.new(key) << value)
126
+ parent_node << node
127
+ end
128
+
129
+ AdfBuilder::Builder.update_params(node, key, params)
130
+ end
131
+
132
+ # update the params by first checking if they are valid params and then checking if the values are valid if necessary
133
+ def self.update_params(node, key, params)
134
+ return true if params.empty?
135
+ key = key.to_sym
136
+ valid_values = params[:valid_values]
137
+ valid_parameters = params[:valid_parameters]
138
+ _params = AdfBuilder::Builder.whitelabel_params(params,valid_parameters, key)
139
+ _params.each do |k,v|
140
+ node[k] = v if valid_values[key][k] == true or valid_values[key][k].include? v.to_s
141
+ end
142
+ end
143
+
144
+ # clear out the opts that don't match valid keys
145
+ def self.whitelabel_params(opts, valid_parameters, key)
146
+ opts.slice(*valid_parameters[key])
147
+ end
148
+
149
+ def self.valid_child?(parent, tag_name, index)
150
+ child = parent.locate(tag_name)[index]
151
+ return !child.nil?,child
152
+ end
109
153
  end
110
154
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adf_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - marcus.salinas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-08 00:00:00.000000000 Z
11
+ date: 2021-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ox
@@ -49,8 +49,12 @@ files:
49
49
  - lib/adf_builder/base/prospect.rb
50
50
  - lib/adf_builder/base/request_date.rb
51
51
  - lib/adf_builder/customer/customer.rb
52
+ - lib/adf_builder/data/iso-4217-currency-codes.json
53
+ - lib/adf_builder/provider/provider.rb
52
54
  - lib/adf_builder/shared/contact.rb
53
55
  - lib/adf_builder/shared/id.rb
56
+ - lib/adf_builder/vehicles/colorcombinations.rb
57
+ - lib/adf_builder/vehicles/price.rb
54
58
  - lib/adf_builder/vehicles/vehicles.rb
55
59
  - lib/adf_builder/vendor/vendor.rb
56
60
  - lib/adf_builder/version.rb