diff --git a/rowers/braintreestuff.py b/rowers/braintreestuff.py index 3bd84cd9..df39ecd6 100644 --- a/rowers/braintreestuff.py +++ b/rowers/braintreestuff.py @@ -1,9 +1,10 @@ -from rowers.models import Rower, PaidPlan, CoachingGroup +from rowers.models import Rower, PaidPlan, CoachingGroup, iDokladToken from rowers.utils import ProcessorCustomerError from rowsandall_app.settings import ( BRAINTREE_MERCHANT_ID, BRAINTREE_PUBLIC_KEY, BRAINTREE_PRIVATE_KEY, BRAINTREE_SANDBOX_MERCHANT_ID, BRAINTREE_SANDBOX_PUBLIC_KEY, - BRAINTREE_SANDBOX_PRIVATE_KEY, BRAINTREE_MERCHANT_ACCOUNT_ID + BRAINTREE_SANDBOX_PRIVATE_KEY, BRAINTREE_MERCHANT_ACCOUNT_ID, + IDOKLAD_CLIENT_ID, IDOKLAD_CLIENT_SECRET, IDOKLAD_REDIRECT_URI, ) import pandas as pd from rowers.utils import dologging @@ -16,7 +17,7 @@ from rowers.tasks import ( # handle_send_email_transaction_notification, ) from rowers.utils import myqueue -import rowers.fakturoid as fakturoid +import rowers.idoklad as idoklad from braintree.exceptions.invalid_signature_error import InvalidSignatureError from braintree.exceptions.not_found_error import NotFoundError import time @@ -52,6 +53,7 @@ else: ) ) + def process_webhook(notification): if not settings.TESTING: # pragma: no cover @@ -112,18 +114,18 @@ def send_invoice(subscription): else: r = rs[0] dologging('braintreewebhooks.log','Rower '+str(r)+'\n') - fakturoid_contact_id = fakturoid.get_contacts(r) - dologging('braintreewebhooks.log','Fakturoid Contact ID '+str(fakturoid_contact_id)+'\n') - if not fakturoid_contact_id: # pragma: no cover - fakturoid_contact_id = fakturoid.create_contact(r) - dologging('braintreewebhooks.log','Created Fakturoid Contact ID ' + - str(fakturoid_contact_id)+'\n') + idoklad_contact_id = idoklad.get_contacts(r) + dologging('braintreewebhooks.log','Idoklad Contact ID '+str(idoklad_contact_id)+'\n') + if not idoklad_contact_id: # pragma: no cover + idoklad_contact_id = idoklad.create_contact(r) + dologging('braintreewebhooks.log','Created Idoklad Contact ID ' + + str(idoklad_contact_id)+'\n') transactions = subscription.transactions if transactions: amount = transactions[0].amount dologging('braintreewebhooks.log','Transaction amount '+str(amount)+'\n') - id = fakturoid.create_invoice(r, amount, subscription_id, dosend=True, - contact_id=fakturoid_contact_id) + id = idoklad.create_invoice(r, amount, subscription_id, dosend=True, + contact_id=idoklad_contact_id) return id return 0 # pragma: no cover @@ -210,11 +212,13 @@ def make_payment(rower, data): l=rower.user.last_name, ) - fakturoid_contact_id = fakturoid.get_contacts(rower) - if not fakturoid_contact_id: - fakturoid_contact_id = fakturoid.create_contact(rower) - _ = fakturoid.create_invoice(rower, amount, transaction.id, dosend=True, contact_id=fakturoid_contact_id, - name=additional_text) + idoklad_contact_id = idoklad.get_contacts(rower) + if not idoklad_contact_id: + idoklad_contact_id = idoklad.create_contact(rower) + + _ = idoklad.create_invoice(rower, amount, transaction.id, dosend=True, + contact_id=idoklad_contact_id, + name=additional_text) _ = myqueue(queuehigh, handle_send_email_transaction, name, rower.user.email, amount) diff --git a/rowers/idoklad.py b/rowers/idoklad.py new file mode 100644 index 00000000..2f74ac86 --- /dev/null +++ b/rowers/idoklad.py @@ -0,0 +1,204 @@ +import requests +import json, yaml +from requests.auth import HTTPBasicAuth +import urllib.parse +from rowers.utils import dologging +import datetime +from django.utils import timezone + +from rowsandall_app.settings import ( + IDOKLAD_CLIENT_ID, IDOKLAD_CLIENT_SECRET, + ) + +contacts_url = 'https://api.idoklad.cz/v3/Contacts' +invoice_url = 'https://api.idoklad.cz/v3/IssuedInvoices' +email_url = 'https://api.idoklad.cz/v3/Mails/IssuedInvoice/Send' + +from rowers.models import iDokladToken + +#idoklad_countries = json.loads(open('rowers/idoklad_countries.json').read())["Data"]["Items"] +with open('rowers/idoklad_countries.yaml') as f: + idoklad_countries = yaml.load(f, Loader=yaml.FullLoader)["Data"]["Items"] + +def get_country_id(code): + for c in idoklad_countries: + if c['Code'] == code: + return c['Id'] + return 1 + + + +def idoklad_token(): + try: + token = iDokladToken.objects.get(id=1) + except iDokladToken.DoesNotExist: + return None + + if token.updated_at + datetime.timedelta(seconds=token.expires_in) < timezone.now(): + headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + } + + data = { + 'grant_type': 'refresh_token', + 'client_id': IDOKLAD_CLIENT_ID, + 'client_secret': IDOKLAD_CLIENT_SECRET, + 'scope': 'eet offline_access', + 'refresh_token': token.refresh_token, + } + + response = requests.post('https://identity.idoklad.cz/server/connect/token', headers=headers, data=data) + + if response.status_code == 200: + token = response.json() + token['updated_at'] = timezone.now() + token = iDokladToken.objects.filter(id=1).update(**token) + return iDokladToken.objects.get(id=1) + else: + return None + + return token + +def get_contacts(rower): + token = idoklad_token() + if token is None: + return None + headers = { + 'Authorization': 'Bearer {t}'.format(t=token.access_token), + } + + url = contacts_url+'?filter=(Email~eq~'+urllib.parse.quote(rower.user.email)+')' + dologging('idoklad.log','Searching Contact url: '+str(url)) + + res = requests.get(url, headers=headers) + + dologging('idoklad.log','Searching Contact Status code '+str(res.status_code)+'\n') + + if res.status_code != 200: # pragma: no cover + return None + + data = res.json()['Data']['Items'] + + if len(data) >= 1: + r = data[0] + return r['Id'] + + return None # pragma + +def create_contact(rower): + token = idoklad_token() + if token is None: + return None + + data = { + 'City': rower.city, + 'CompanyName': rower.user.first_name+" "+rower.user.last_name, + 'CountryId': get_country_id(rower.country.code), + 'Email': rower.user.email, + 'Firstname': rower.user.first_name, + 'PostalCode': rower.postal_code, + 'Street': rower.street_address, + 'Surname': rower.user.last_name, + 'DeliveryAddresses': [] + } + + if rower.country.numeric is None: + data['CountryId'] = 1 + + + + dologging('idoklad.log','Creating idoklad contact for '+str(rower.user.email)+'\n') + + headers = { + 'Authorization': 'Bearer {t}'.format(t=token.access_token), + "Content-Type": "application/json", + "Accept": "application/json", + } + + res = requests.post(contacts_url, json=data, headers=headers) + + if res.status_code not in [200, 201]: + return 0 + + id = res.json()['Data']['Id'] + + return id + +def create_invoice(rower, amount, braintreeid, dosend=True, contact_id=None, name=None): + t = idoklad_token() + if t is None: + return None + + if not contact_id: + contact_id = get_contacts(rower) + + if not name: + name = 'Rowsandall Subscription '+str(braintreeid) + + if not contact_id: + return 0 + + token = idoklad_token() + if token is None: + return 0 + + dologging('idoklad.log','Creating idoklad invoice for '+str(rower.user.email)+'\n') + + headers = { + 'Authorization': 'Bearer {t}'.format(t=token.access_token), + } + + res = requests.get(invoice_url+'/Default', headers=headers) + + post_data = res.json()['Data'] + post_data['DateOfPayment'] = timezone.now().strftime('%Y-%m-%d') + post_data['Description'] = name + post_data['Items'][0]['Name'] = name + post_data['Items'][0]['UnitPrice'] = amount + post_data['PartnerId'] = contact_id + post_data['ItemsTextPrefix'] = 'We invoice you for '+str(name)+' in the amount of '+str(amount)+' EUR.' + post_data['ItemsTextSuffix'] = 'This invoice was already paid. Please do not pay it again.' + post_data['Items'][0]['VatRate'] = 0.0 + post_data['Items'][0]['VatRateType'] = 2 + post_data['Items'][0]['VatCodeId'] = 3 + post_data['CurrencyId'] = 2 + post_data['ReportLanguage'] = 3 + post_data.pop('ExchangeRate', None) + + + res = requests.post(invoice_url, json=post_data, headers=headers) + dologging('idoklad.log','Invoice Created - status code '+str(res.status_code)+'\n') + + if res.status_code not in [200, 201]: + dologging('idoklad.log','Invoice Created - reason '+str(res.reason)+'\n') + return 0 + + id = res.json()['Data']['Id'] + + if dosend: + data = { + 'AttachmentIds': [], + 'DocumentId': id, + 'EmailBody': 'Dear customer, we are sending you the invoice for your subscription. Please do not hesitate to contact us if you have any questions. Best regards, Rowsandall Team', + 'EmailSubject': 'Rowsandall Subscription Invoice', + 'Method': 1, + 'ReportLanguage': 3, + 'SendToSelf': True, + 'SendToPartner': True, + 'SendToAccountant': False, + } + + headers = { + 'Authorization': 'Bearer {access_token}'.format(access_token=token.access_token), + 'Content-Type': 'application/json', + 'Accept': 'application/json', + } + + res = requests.post(email_url, json=data, headers=headers) + + dologging('idoklad.log','Invoice Sent - status code '+str(res.status_code)+'\n') + if res.status_code not in [200, 201]: + dologging('idoklad.log','Invoice Sent - reason '+str(res.text)+'\n') + + return id + diff --git a/rowers/idoklad_countries.json b/rowers/idoklad_countries.json new file mode 100644 index 00000000..3e388018 --- /dev/null +++ b/rowers/idoklad_countries.json @@ -0,0 +1,2212 @@ +{ + "Data": { + "Items": [ + { + "Code": "SK", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 1, + "IsEuMember": true, + "Name": "Slovensko", + "NameEnglish": "Slovakia", + "NameGerman": "Slowakei", + "NameSlovak": "Slovensko" + }, + { + "Code": "CZ", + "CurrencyId": 1, + "DateLastChange": "2022-10-25", + "Id": 2, + "IsEuMember": true, + "Name": "Česká republika", + "NameEnglish": "Czechia", + "NameGerman": "Tschechische Republik", + "NameSlovak": "Česká republika" + }, + { + "Code": "AF", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 3, + "IsEuMember": false, + "Name": "Afghánistán", + "NameEnglish": "Afghanistan", + "NameGerman": "Afghanistan", + "NameSlovak": "Afganistan" + }, + { + "Code": "AL", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 4, + "IsEuMember": false, + "Name": "Albánie", + "NameEnglish": "Albania", + "NameGerman": "Albanien", + "NameSlovak": "Albánsko" + }, + { + "Code": "AQ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 5, + "IsEuMember": false, + "Name": "Antarktida", + "NameEnglish": "Antarctica", + "NameGerman": "Antarktis", + "NameSlovak": "Antarktída" + }, + { + "Code": "DZ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 6, + "IsEuMember": false, + "Name": "Alžírsko", + "NameEnglish": "Algeria", + "NameGerman": "Algerien", + "NameSlovak": "Alžírsko" + }, + { + "Code": "AS", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 7, + "IsEuMember": false, + "Name": "Americká Samoa", + "NameEnglish": "American Samoa", + "NameGerman": "Amerikanisch-Samoa", + "NameSlovak": "Americká Samoa" + }, + { + "Code": "AD", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 8, + "IsEuMember": false, + "Name": "Andorra", + "NameEnglish": "Andorra", + "NameGerman": "Andorra", + "NameSlovak": "Andorra" + }, + { + "Code": "AO", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 9, + "IsEuMember": false, + "Name": "Angola", + "NameEnglish": "Angola", + "NameGerman": "Angola", + "NameSlovak": "Angola" + }, + { + "Code": "AG", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 10, + "IsEuMember": false, + "Name": "Antigua a Barbuda", + "NameEnglish": "Antigua and Barbuda", + "NameGerman": "Antigua und Barbuda", + "NameSlovak": "Antigua a Barbuda" + }, + { + "Code": "AZ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 11, + "IsEuMember": false, + "Name": "Ázerbájdžán", + "NameEnglish": "Azerbaijan", + "NameGerman": "Aserbaidschan", + "NameSlovak": "Azerbajdžan" + }, + { + "Code": "AR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 12, + "IsEuMember": false, + "Name": "Argentina", + "NameEnglish": "Argentina", + "NameGerman": "Argentinien", + "NameSlovak": "Argentína" + }, + { + "Code": "AU", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 13, + "IsEuMember": false, + "Name": "Austrálie", + "NameEnglish": "Australia", + "NameGerman": "Australien", + "NameSlovak": "Austrália" + }, + { + "Code": "AT", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 14, + "IsEuMember": true, + "Name": "Rakousko", + "NameEnglish": "Austria", + "NameGerman": "Österreich", + "NameSlovak": "Rakúsko" + }, + { + "Code": "BS", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 15, + "IsEuMember": false, + "Name": "Bahamy", + "NameEnglish": "Bahamas (The)", + "NameGerman": "Bahamas", + "NameSlovak": "Bahamy" + }, + { + "Code": "BH", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 16, + "IsEuMember": false, + "Name": "Bahrajn", + "NameEnglish": "Bahrain", + "NameGerman": "Bahrain", + "NameSlovak": "Bahrajn" + }, + { + "Code": "BD", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 17, + "IsEuMember": false, + "Name": "Bangladéš", + "NameEnglish": "Bangladesh", + "NameGerman": "Bangladesch", + "NameSlovak": "Bangladéš" + }, + { + "Code": "AM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 18, + "IsEuMember": false, + "Name": "Arménie", + "NameEnglish": "Armenia", + "NameGerman": "Armenien", + "NameSlovak": "Arménsko" + }, + { + "Code": "BB", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 19, + "IsEuMember": false, + "Name": "Barbados", + "NameEnglish": "Barbados", + "NameGerman": "Barbados", + "NameSlovak": "Barbados" + }, + { + "Code": "BE", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 20, + "IsEuMember": true, + "Name": "Belgie", + "NameEnglish": "Belgium", + "NameGerman": "Belgien ", + "NameSlovak": "Belgicko" + }, + { + "Code": "BM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 21, + "IsEuMember": false, + "Name": "Bermudy", + "NameEnglish": "Bermuda", + "NameGerman": "Bermuda", + "NameSlovak": "Bermudy" + }, + { + "Code": "BT", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 22, + "IsEuMember": false, + "Name": "Bhútán", + "NameEnglish": "Bhutan", + "NameGerman": "Bhutan", + "NameSlovak": "Bhután" + }, + { + "Code": "BO", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 23, + "IsEuMember": false, + "Name": "Bolívie", + "NameEnglish": "Bolivia (Plurinational State of)", + "NameGerman": "Bolivien", + "NameSlovak": "Bolívia" + }, + { + "Code": "BA", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 24, + "IsEuMember": false, + "Name": "Bosna a Hercegovina", + "NameEnglish": "Bosnia and Herzegovina", + "NameGerman": " Bosnien und Herzegowina", + "NameSlovak": "Bosna a Hercegovina" + }, + { + "Code": "BW", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 25, + "IsEuMember": false, + "Name": "Botswana", + "NameEnglish": "Botswana", + "NameGerman": "Botswana", + "NameSlovak": "Botswana" + }, + { + "Code": "BV", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 26, + "IsEuMember": false, + "Name": "Bouvetův ostrov", + "NameEnglish": "Bouvet Island", + "NameGerman": "Bouvetinsel", + "NameSlovak": "Bouvetov ostrov" + }, + { + "Code": "BR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 27, + "IsEuMember": false, + "Name": "Brazílie", + "NameEnglish": "Brazil", + "NameGerman": "Brasilien", + "NameSlovak": "Brazília" + }, + { + "Code": "BZ", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 28, + "IsEuMember": false, + "Name": "Belize", + "NameEnglish": "Belize", + "NameGerman": "Belize", + "NameSlovak": "Belize" + }, + { + "Code": "IO", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 29, + "IsEuMember": false, + "Name": "Britské indickooceánské území", + "NameEnglish": "British Indian Ocean Territory (the)\r\n", + "NameGerman": "Britisches Territorium im Indischen Ozean", + "NameSlovak": "Britské indickooceánske územie" + }, + { + "Code": "SB", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 30, + "IsEuMember": false, + "Name": "Šalomounovy ostrovy", + "NameEnglish": "Solomon Islands", + "NameGerman": "Salomonen", + "NameSlovak": "Šalamúnove ostrovy" + }, + { + "Code": "VG", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 31, + "IsEuMember": false, + "Name": "Britské Panenské ostrovy", + "NameEnglish": "Virgin Islands (British)", + "NameGerman": "Britische Jungferninseln", + "NameSlovak": "Britské Panenské ostrovy" + }, + { + "Code": "XK", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 32, + "IsEuMember": false, + "Name": "Kosovo", + "NameEnglish": "Republic of Kosovo", + "NameGerman": "Kosovo", + "NameSlovak": "Kosovo" + }, + { + "Code": "BN", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 33, + "IsEuMember": false, + "Name": "Brunej", + "NameEnglish": "Brunei Darussalam", + "NameGerman": "Brunei", + "NameSlovak": "Brunej" + }, + { + "Code": "BG", + "CurrencyId": 3, + "DateLastChange": "1753-01-01", + "Id": 34, + "IsEuMember": true, + "Name": "Bulharsko", + "NameEnglish": "Bulgaria", + "NameGerman": "Bulgarien", + "NameSlovak": "Bulharsko" + }, + { + "Code": "MM", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 35, + "IsEuMember": false, + "Name": "Myanmar", + "NameEnglish": "Myanmar", + "NameGerman": "Myanmar", + "NameSlovak": "Mjanmarsko" + }, + { + "Code": "BI", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 36, + "IsEuMember": false, + "Name": "Burundi", + "NameEnglish": "Burundi", + "NameGerman": "Burundi", + "NameSlovak": "Burundi" + }, + { + "Code": "BY", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 37, + "IsEuMember": false, + "Name": "Bělorusko", + "NameEnglish": "Belarus", + "NameGerman": "Belarus", + "NameSlovak": "Bielorusko" + }, + { + "Code": "KH", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 38, + "IsEuMember": false, + "Name": "Kambodža", + "NameEnglish": "Cambodia", + "NameGerman": "Kambodscha", + "NameSlovak": "Kambodža" + }, + { + "Code": "CM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 39, + "IsEuMember": false, + "Name": "Kamerun", + "NameEnglish": "Cameroon", + "NameGerman": "Kamerun", + "NameSlovak": "Kamerun" + }, + { + "Code": "CA", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 40, + "IsEuMember": false, + "Name": "Kanada", + "NameEnglish": "Canada", + "NameGerman": "Kanada", + "NameSlovak": "Kanada" + }, + { + "Code": "CV", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 41, + "IsEuMember": false, + "Name": "Kapverdy", + "NameEnglish": "Cape Verde", + "NameGerman": "Kap Verde", + "NameSlovak": "Kapverdy" + }, + { + "Code": "KY", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 42, + "IsEuMember": false, + "Name": "Kajmanské ostrovy", + "NameEnglish": "Cayman Islands (the)", + "NameGerman": "Kaimaninseln", + "NameSlovak": "Kajmanské ostrovy" + }, + { + "Code": "CF", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 43, + "IsEuMember": false, + "Name": "Středoafrická republika", + "NameEnglish": "Central African Republic (the)", + "NameGerman": "Zentralafrikanische Republik", + "NameSlovak": "Stredoafrická republika" + }, + { + "Code": "LK", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 44, + "IsEuMember": false, + "Name": "Šrí Lanka", + "NameEnglish": "Sri Lanka", + "NameGerman": "Sri Lanka", + "NameSlovak": "Srí Lanka" + }, + { + "Code": "TD", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 45, + "IsEuMember": false, + "Name": "Čad", + "NameEnglish": "Chad", + "NameGerman": "Tschad", + "NameSlovak": "Čad" + }, + { + "Code": "CL", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 46, + "IsEuMember": false, + "Name": "Chile", + "NameEnglish": "Chile", + "NameGerman": "Chile ", + "NameSlovak": "Čile" + }, + { + "Code": "CN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 47, + "IsEuMember": false, + "Name": "Čína", + "NameEnglish": "China", + "NameGerman": "China", + "NameSlovak": "Čína" + }, + { + "Code": "TW", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 48, + "IsEuMember": false, + "Name": "Tchaj-wan", + "NameEnglish": "Taiwan (Province of China)", + "NameGerman": "Taiwan", + "NameSlovak": "Taiwan" + }, + { + "Code": "CX", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 49, + "IsEuMember": false, + "Name": "Vánoční ostrov", + "NameEnglish": "Christmas Island", + "NameGerman": "Weihnachtsinsel", + "NameSlovak": "Vianočný ostrov" + }, + { + "Code": "CC", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 50, + "IsEuMember": false, + "Name": "Kokosové (Keelingovy) ostrovy", + "NameEnglish": "Cocos (Keeling) Islands (the)", + "NameGerman": "Kokosinseln (Keelinginseln)", + "NameSlovak": "Kokosové (Keelingove) ostrovy" + }, + { + "Code": "CO", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 51, + "IsEuMember": false, + "Name": "Kolumbie", + "NameEnglish": "Colombia", + "NameGerman": "Kolumbien", + "NameSlovak": "Kolumbia" + }, + { + "Code": "KM", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 52, + "IsEuMember": false, + "Name": "Komory", + "NameEnglish": "Comoros (the)", + "NameGerman": "Komoren", + "NameSlovak": "Komory" + }, + { + "Code": "YT", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 53, + "IsEuMember": false, + "Name": "Mayotte", + "NameEnglish": "Mayotte", + "NameGerman": "Mayotte", + "NameSlovak": "Mayotte" + }, + { + "Code": "CG", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 54, + "IsEuMember": false, + "Name": "Konžská republika", + "NameEnglish": "Congo (the)", + "NameGerman": "Republik Kongo", + "NameSlovak": "Konžská republika" + }, + { + "Code": "CD", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 55, + "IsEuMember": false, + "Name": "Demokratická republika Kongo", + "NameEnglish": "Congo (the Democratic Republic of the)", + "NameGerman": "Demokratische Republik Kongo", + "NameSlovak": "Konžská demokratická republika" + }, + { + "Code": "CK", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 56, + "IsEuMember": false, + "Name": "Cookovy ostrovy", + "NameEnglish": "Cook Islands (the)", + "NameGerman": "Cookinseln", + "NameSlovak": "Cookove ostrovy" + }, + { + "Code": "CR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 57, + "IsEuMember": false, + "Name": "Kostarika", + "NameEnglish": "Costa Rica", + "NameGerman": "Costa Rica", + "NameSlovak": "Kostarika" + }, + { + "Code": "HR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 58, + "IsEuMember": true, + "Name": "Chorvatsko", + "NameEnglish": "Croatia", + "NameGerman": "Kroatien", + "NameSlovak": "Chorvátsko" + }, + { + "Code": "CU", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 59, + "IsEuMember": false, + "Name": "Kuba", + "NameEnglish": "Cuba", + "NameGerman": "Kuba", + "NameSlovak": "Kuba" + }, + { + "Code": "CY", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 60, + "IsEuMember": true, + "Name": "Kypr", + "NameEnglish": "Cyprus", + "NameGerman": "Zypern", + "NameSlovak": "Cyprus" + }, + { + "Code": "BJ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 61, + "IsEuMember": false, + "Name": "Benin", + "NameEnglish": "Benin", + "NameGerman": "Benin", + "NameSlovak": "Benin" + }, + { + "Code": "DK", + "CurrencyId": 4, + "DateLastChange": "1753-01-01", + "Id": 62, + "IsEuMember": true, + "Name": "Dánsko", + "NameEnglish": "Denmark", + "NameGerman": "Dänemark", + "NameSlovak": "Dánsko" + }, + { + "Code": "DM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 63, + "IsEuMember": false, + "Name": "Dominika", + "NameEnglish": "Dominica", + "NameGerman": "Dominica", + "NameSlovak": "Dominika" + }, + { + "Code": "DO", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 64, + "IsEuMember": false, + "Name": "Dominikánská republika", + "NameEnglish": "Dominican Republic (the)", + "NameGerman": "Dominikanische Republik", + "NameSlovak": "Dominikánska republika" + }, + { + "Code": "EC", + "CurrencyId": 11, + "DateLastChange": "1753-01-01", + "Id": 65, + "IsEuMember": false, + "Name": "Ekvádor", + "NameEnglish": "Ecuador", + "NameGerman": "Ecuador", + "NameSlovak": "Ekvádor" + }, + { + "Code": "SV", + "CurrencyId": 11, + "DateLastChange": "1753-01-01", + "Id": 66, + "IsEuMember": false, + "Name": "Salvador", + "NameEnglish": "El Salvador", + "NameGerman": "El Salvador", + "NameSlovak": "Salvador" + }, + { + "Code": "GQ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 67, + "IsEuMember": false, + "Name": "Rovníková Guinea", + "NameEnglish": "Equatorial Guinea", + "NameGerman": "Äquatorialguinea", + "NameSlovak": "Rovníková Guinea" + }, + { + "Code": "ET", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 68, + "IsEuMember": false, + "Name": "Etiopie", + "NameEnglish": "Ethiopia", + "NameGerman": "Äthiopien", + "NameSlovak": "Etiópia" + }, + { + "Code": "ER", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 69, + "IsEuMember": false, + "Name": "Eritrea", + "NameEnglish": "Eritrea", + "NameGerman": "Eritrea", + "NameSlovak": "Eritrejský štát" + }, + { + "Code": "EE", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 70, + "IsEuMember": true, + "Name": "Estonsko", + "NameEnglish": "Estonia", + "NameGerman": "Estland", + "NameSlovak": "Estónsko" + }, + { + "Code": "FO", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 71, + "IsEuMember": false, + "Name": "Faerské ostrovy", + "NameEnglish": "Faroe Islands (the)", + "NameGerman": "Färöer", + "NameSlovak": "Faerské ostrovy" + }, + { + "Code": "FK", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 72, + "IsEuMember": false, + "Name": "Falklandy", + "NameEnglish": "Falkland Islands (the) (Malvinas)", + "NameGerman": "Falklandinseln", + "NameSlovak": "Falklandy" + }, + { + "Code": "GS", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 73, + "IsEuMember": false, + "Name": "Jižní Georgie a Jižní Sandwichovy ostrovy", + "NameEnglish": "South Georgia and the South Sandwich Islands", + "NameGerman": "Südgeorgien und die Südlichen Sandwichinseln", + "NameSlovak": "Južná Georgia a Južné Sandwichove ostrovy" + }, + { + "Code": "FJ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 74, + "IsEuMember": false, + "Name": "Fidži", + "NameEnglish": "Fiji", + "NameGerman": "Fidschi", + "NameSlovak": "Fidži" + }, + { + "Code": "FI", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 75, + "IsEuMember": true, + "Name": "Finsko", + "NameEnglish": "Finland", + "NameGerman": "Finnland", + "NameSlovak": "Fínsko" + }, + { + "Code": "AX", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 76, + "IsEuMember": false, + "Name": "Alandy", + "NameEnglish": "Åland Islands", + "NameGerman": "Åland", + "NameSlovak": "Alandy" + }, + { + "Code": "FR", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 77, + "IsEuMember": true, + "Name": "Francie", + "NameEnglish": "France", + "NameGerman": "Frankreich", + "NameSlovak": "Francúzsko" + }, + { + "Code": "GF", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 78, + "IsEuMember": false, + "Name": "Francouzská Guyana", + "NameEnglish": "French Guiana", + "NameGerman": "Französisch-Guyana", + "NameSlovak": "Francúzska Guyana" + }, + { + "Code": "PF", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 79, + "IsEuMember": false, + "Name": "Francouzská Polynésie", + "NameEnglish": "French Polynesia", + "NameGerman": "Französisch-Polynesien", + "NameSlovak": "Francúzska Polynézia" + }, + { + "Code": "TF", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 80, + "IsEuMember": false, + "Name": "Francouzská jižní a antarktická území", + "NameEnglish": "French Southern Territories (the)", + "NameGerman": "Französisch Süd- und Antarktisgebiete", + "NameSlovak": "Francúzske južné a antarktické územia" + }, + { + "Code": "DJ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 81, + "IsEuMember": false, + "Name": "Džibutsko", + "NameEnglish": "Djibouti", + "NameGerman": "Dschibuti", + "NameSlovak": "Džibutsko" + }, + { + "Code": "GA", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 82, + "IsEuMember": false, + "Name": "Gabon", + "NameEnglish": "Gabon", + "NameGerman": "Gabon", + "NameSlovak": "Gabon" + }, + { + "Code": "GE", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 83, + "IsEuMember": false, + "Name": "Gruzie", + "NameEnglish": "Georgia", + "NameGerman": "Georgien", + "NameSlovak": "Gruzínska republika" + }, + { + "Code": "GM", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 84, + "IsEuMember": false, + "Name": "Gambie", + "NameEnglish": "Gambia (the)", + "NameGerman": "Gambia", + "NameSlovak": "Gambia" + }, + { + "Code": "PS", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 85, + "IsEuMember": false, + "Name": "Palestina", + "NameEnglish": "Palestine, State of", + "NameGerman": "Palästina", + "NameSlovak": "Palestína" + }, + { + "Code": "DE", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 86, + "IsEuMember": true, + "Name": "Německo", + "NameEnglish": "Germany", + "NameGerman": "Deutschland", + "NameSlovak": "Nemecko" + }, + { + "Code": "GH", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 87, + "IsEuMember": false, + "Name": "Ghana", + "NameEnglish": "Ghana", + "NameGerman": "Ghana", + "NameSlovak": "Ghana" + }, + { + "Code": "GI", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 88, + "IsEuMember": false, + "Name": "Gibraltar", + "NameEnglish": "Gibraltar", + "NameGerman": "Gibraltar", + "NameSlovak": "Gibraltár" + }, + { + "Code": "KI", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 89, + "IsEuMember": false, + "Name": "Kiribati", + "NameEnglish": "Kiribati", + "NameGerman": "Kiribati", + "NameSlovak": "Kiribati" + }, + { + "Code": "GR", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 90, + "IsEuMember": true, + "Name": "Řecko", + "NameEnglish": "Greece", + "NameGerman": "Griechenland", + "NameSlovak": "Grécko" + }, + { + "Code": "GL", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 91, + "IsEuMember": false, + "Name": "Grónsko", + "NameEnglish": "Greenland", + "NameGerman": "Grönland", + "NameSlovak": "Grónsko" + }, + { + "Code": "GD", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 92, + "IsEuMember": false, + "Name": "Grenada", + "NameEnglish": "Grenada", + "NameGerman": "Grenada", + "NameSlovak": "Grenada" + }, + { + "Code": "GP", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 93, + "IsEuMember": false, + "Name": "Guadeloupe", + "NameEnglish": "Guadeloupe", + "NameGerman": "Guadeloupe", + "NameSlovak": "Guadeloupe" + }, + { + "Code": "GU", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 94, + "IsEuMember": false, + "Name": "Guam", + "NameEnglish": "Guam", + "NameGerman": "Guam", + "NameSlovak": "Guam" + }, + { + "Code": "GT", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 95, + "IsEuMember": false, + "Name": "Guatemala", + "NameEnglish": "Guatemala", + "NameGerman": "Guatemala", + "NameSlovak": "Guatemala" + }, + { + "Code": "GN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 96, + "IsEuMember": false, + "Name": "Guinea", + "NameEnglish": "Guinea", + "NameGerman": "Guinea", + "NameSlovak": "Guinea" + }, + { + "Code": "GY", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 97, + "IsEuMember": false, + "Name": "Guyana", + "NameEnglish": "Guyana", + "NameGerman": "Guyana", + "NameSlovak": "Guyana" + }, + { + "Code": "HT", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 98, + "IsEuMember": false, + "Name": "Haiti", + "NameEnglish": "Haiti", + "NameGerman": "Haiti", + "NameSlovak": "Haiti" + }, + { + "Code": "HM", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 99, + "IsEuMember": false, + "Name": "Heardův ostrov a MacDonaldovy ostrovy", + "NameEnglish": "Heard Island and McDonald Islands", + "NameGerman": "Heard und die McDonaldinseln", + "NameSlovak": "Heardov ostrov a Macdonaldove ostrovy" + }, + { + "Code": "VA", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 100, + "IsEuMember": false, + "Name": "Vatikán", + "NameEnglish": "Holy See (the)", + "NameGerman": "Vatikanstadt", + "NameSlovak": "Vatikán" + }, + { + "Code": "HN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 101, + "IsEuMember": false, + "Name": "Honduras", + "NameEnglish": "Honduras", + "NameGerman": "Honduras", + "NameSlovak": "Honduras" + }, + { + "Code": "HK", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 102, + "IsEuMember": false, + "Name": "Hongkong", + "NameEnglish": "Hong Kong", + "NameGerman": "Hongkong", + "NameSlovak": "Hongkong" + }, + { + "Code": "HU", + "CurrencyId": 5, + "DateLastChange": "1753-01-01", + "Id": 103, + "IsEuMember": true, + "Name": "Maďarsko", + "NameEnglish": "Hungary", + "NameGerman": "Ungarn", + "NameSlovak": "Maďarsko" + }, + { + "Code": "IS", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 104, + "IsEuMember": false, + "Name": "Island", + "NameEnglish": "Iceland", + "NameGerman": "Island", + "NameSlovak": "Island" + }, + { + "Code": "IN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 105, + "IsEuMember": false, + "Name": "Indie", + "NameEnglish": "India", + "NameGerman": "Indien", + "NameSlovak": "India" + }, + { + "Code": "ID", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 106, + "IsEuMember": false, + "Name": "Indonésie", + "NameEnglish": "Indonesia", + "NameGerman": "Indonesien", + "NameSlovak": "Indonézia" + }, + { + "Code": "IR", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 107, + "IsEuMember": false, + "Name": "Írán", + "NameEnglish": "Iran (Islamic Republic of)", + "NameGerman": "Iran", + "NameSlovak": "Irán" + }, + { + "Code": "IQ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 108, + "IsEuMember": false, + "Name": "Irák", + "NameEnglish": "Iraq", + "NameGerman": "Irak", + "NameSlovak": "Irak" + }, + { + "Code": "IE", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 109, + "IsEuMember": true, + "Name": "Irsko", + "NameEnglish": "Ireland", + "NameGerman": "Irland", + "NameSlovak": "Írsko" + }, + { + "Code": "IL", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 110, + "IsEuMember": false, + "Name": "Izrael", + "NameEnglish": "Israel", + "NameGerman": "Israel", + "NameSlovak": "Izrael" + }, + { + "Code": "IT", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 111, + "IsEuMember": true, + "Name": "Itálie", + "NameEnglish": "Italy", + "NameGerman": "Italien", + "NameSlovak": "Taliansko" + }, + { + "Code": "CI", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 112, + "IsEuMember": false, + "Name": "Pobřeží slonoviny", + "NameEnglish": "Côte d'Ivoire", + "NameGerman": "Côte d'Ivoire", + "NameSlovak": "Pobrežie Slonoviny" + }, + { + "Code": "JM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 113, + "IsEuMember": false, + "Name": "Jamajka", + "NameEnglish": "Jamaica", + "NameGerman": "Jamaika", + "NameSlovak": "Jamajka" + }, + { + "Code": "JP", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 114, + "IsEuMember": false, + "Name": "Japonsko", + "NameEnglish": "Japan", + "NameGerman": "Japan", + "NameSlovak": "Japonsko" + }, + { + "Code": "KZ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 115, + "IsEuMember": false, + "Name": "Kazachstán", + "NameEnglish": "Kazakhstan", + "NameGerman": "Kasachstan", + "NameSlovak": "Kazachstan" + }, + { + "Code": "JO", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 116, + "IsEuMember": false, + "Name": "Jordánsko", + "NameEnglish": "Jordan", + "NameGerman": "Jordanien", + "NameSlovak": "Jordánsko" + }, + { + "Code": "KE", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 117, + "IsEuMember": false, + "Name": "Keňa", + "NameEnglish": "Kenya", + "NameGerman": "Kenia", + "NameSlovak": "Keňa" + }, + { + "Code": "KP", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 118, + "IsEuMember": false, + "Name": "Korejská lidově demokratická republika", + "NameEnglish": "Korea (the Democratic People's Republic of)", + "NameGerman": "Demokratische Volksrepublik Korea", + "NameSlovak": "Kórejská ľudovodemokratická republika" + }, + { + "Code": "KR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 119, + "IsEuMember": false, + "Name": "Korejská republika", + "NameEnglish": "Korea (the Republic of)", + "NameGerman": "Republik Korea", + "NameSlovak": "Kórejská republika" + }, + { + "Code": "KW", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 120, + "IsEuMember": false, + "Name": "Kuvajt", + "NameEnglish": "Kuwait", + "NameGerman": "Kuwait", + "NameSlovak": "Kuvajt" + }, + { + "Code": "KG", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 121, + "IsEuMember": false, + "Name": "Kyrgyzstán", + "NameEnglish": "Kyrgyzstan", + "NameGerman": "Kirgisistan", + "NameSlovak": "Kirgizsko" + }, + { + "Code": "LA", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 122, + "IsEuMember": false, + "Name": "Laos", + "NameEnglish": "Lao People's Democratic Republic (the)", + "NameGerman": "Laos", + "NameSlovak": "Laos" + }, + { + "Code": "LB", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 123, + "IsEuMember": false, + "Name": "Libanon", + "NameEnglish": "Lebanon", + "NameGerman": "Libanon", + "NameSlovak": "Libanon" + }, + { + "Code": "LS", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 124, + "IsEuMember": false, + "Name": "Lesotho", + "NameEnglish": "Lesotho", + "NameGerman": "Lesotho", + "NameSlovak": "Lesotho" + }, + { + "Code": "LV", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 125, + "IsEuMember": true, + "Name": "Lotyšsko", + "NameEnglish": "Latvia", + "NameGerman": "Lettland", + "NameSlovak": "Lotyšsko" + }, + { + "Code": "LR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 126, + "IsEuMember": false, + "Name": "Libérie", + "NameEnglish": "Liberia", + "NameGerman": "Liberia", + "NameSlovak": "Libéria" + }, + { + "Code": "LY", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 127, + "IsEuMember": false, + "Name": "Libye", + "NameEnglish": "Libya", + "NameGerman": "Libyen", + "NameSlovak": "Líbyjský štát" + }, + { + "Code": "LI", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 128, + "IsEuMember": false, + "Name": "Lichtenštejnsko", + "NameEnglish": "Liechtenstein", + "NameGerman": "Liechtenstein", + "NameSlovak": "Lichtenštajnsko" + }, + { + "Code": "LT", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 129, + "IsEuMember": true, + "Name": "Litva", + "NameEnglish": "Lithuania", + "NameGerman": "Litauen", + "NameSlovak": "Litva" + }, + { + "Code": "LU", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 130, + "IsEuMember": true, + "Name": "Lucembursko", + "NameEnglish": "Luxembourg", + "NameGerman": "Luxemburg", + "NameSlovak": "Luxembursko" + }, + { + "Code": "MO", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 131, + "IsEuMember": false, + "Name": "Macao", + "NameEnglish": "Macao", + "NameGerman": "Macao", + "NameSlovak": "Macao" + }, + { + "Code": "MG", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 132, + "IsEuMember": false, + "Name": "Madagaskar", + "NameEnglish": "Madagascar", + "NameGerman": "Madagaskar", + "NameSlovak": "Madagaskar" + }, + { + "Code": "MW", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 133, + "IsEuMember": false, + "Name": "Malawi", + "NameEnglish": "Malawi", + "NameGerman": "Malawi", + "NameSlovak": "Malawi" + }, + { + "Code": "MY", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 134, + "IsEuMember": false, + "Name": "Malajsie", + "NameEnglish": "Malaysia", + "NameGerman": "Malaysia", + "NameSlovak": "Malajzia" + }, + { + "Code": "MV", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 135, + "IsEuMember": false, + "Name": "Maledivy", + "NameEnglish": "Maldives", + "NameGerman": "Malediven", + "NameSlovak": "Maledivy" + }, + { + "Code": "ML", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 136, + "IsEuMember": false, + "Name": "Mali", + "NameEnglish": "Mali", + "NameGerman": "Mali", + "NameSlovak": "Mali" + }, + { + "Code": "MT", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 137, + "IsEuMember": true, + "Name": "Malta", + "NameEnglish": "Malta", + "NameGerman": "Malta", + "NameSlovak": "Malta" + }, + { + "Code": "MQ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 138, + "IsEuMember": false, + "Name": "Martinik", + "NameEnglish": "Martinique", + "NameGerman": "Martinique", + "NameSlovak": "Martinik" + }, + { + "Code": "MR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 139, + "IsEuMember": false, + "Name": "Mauritánie", + "NameEnglish": "Mauritania", + "NameGerman": "Mauretanien", + "NameSlovak": "Mauritánia" + }, + { + "Code": "MU", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 140, + "IsEuMember": false, + "Name": "Mauricius", + "NameEnglish": "Mauritius", + "NameGerman": "Mauritius", + "NameSlovak": "Mauricius" + }, + { + "Code": "MX", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 141, + "IsEuMember": false, + "Name": "Mexiko", + "NameEnglish": "Mexico", + "NameGerman": "Mexiko", + "NameSlovak": "Mexiko" + }, + { + "Code": "MC", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 142, + "IsEuMember": false, + "Name": "Monako", + "NameEnglish": "Monaco", + "NameGerman": "Monaco", + "NameSlovak": "Monako" + }, + { + "Code": "MN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 143, + "IsEuMember": false, + "Name": "Mongolsko", + "NameEnglish": "Mongolia", + "NameGerman": "Mongolei", + "NameSlovak": "Mongolská republika" + }, + { + "Code": "MD", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 144, + "IsEuMember": false, + "Name": "Moldavsko", + "NameEnglish": "Moldova (the Republic of)", + "NameGerman": "Moldau", + "NameSlovak": "Moldavsko" + }, + { + "Code": "ME", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 145, + "IsEuMember": false, + "Name": "Černá Hora", + "NameEnglish": "Montenegro", + "NameGerman": "Montenegro", + "NameSlovak": "Čierna Hora" + }, + { + "Code": "MS", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 146, + "IsEuMember": false, + "Name": "Montserrat", + "NameEnglish": "Montserrat", + "NameGerman": "Montserrat", + "NameSlovak": "Montserrat" + }, + { + "Code": "MA", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 147, + "IsEuMember": false, + "Name": "Maroko", + "NameEnglish": "Morocco", + "NameGerman": "Marokko", + "NameSlovak": "Maroko" + }, + { + "Code": "MZ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 148, + "IsEuMember": false, + "Name": "Mosambik", + "NameEnglish": "Mozambique", + "NameGerman": "Mosambik", + "NameSlovak": "Mozambik" + }, + { + "Code": "OM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 149, + "IsEuMember": false, + "Name": "Omán", + "NameEnglish": "Oman", + "NameGerman": "Oman", + "NameSlovak": "Omán" + }, + { + "Code": "NA", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 150, + "IsEuMember": false, + "Name": "Namibie", + "NameEnglish": "Namibia", + "NameGerman": "Namibia", + "NameSlovak": "Namíbia" + }, + { + "Code": "NR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 151, + "IsEuMember": false, + "Name": "Nauru", + "NameEnglish": "Nauru", + "NameGerman": "Nauru", + "NameSlovak": "Nauru" + }, + { + "Code": "NP", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 152, + "IsEuMember": false, + "Name": "Nepál", + "NameEnglish": "Nepal", + "NameGerman": "Nepal ", + "NameSlovak": "Nepál" + }, + { + "Code": "NL", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 153, + "IsEuMember": true, + "Name": "Nizozemsko", + "NameEnglish": "Netherlands (the)", + "NameGerman": "Niederlande", + "NameSlovak": "Holandsko" + }, + { + "Code": "AN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 154, + "IsEuMember": false, + "Name": "Nizozemské Antily", + "NameEnglish": "Netherlands Antilles", + "NameGerman": "Niederländische Antillen", + "NameSlovak": "Holandské Antily" + }, + { + "Code": "AW", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 155, + "IsEuMember": false, + "Name": "Aruba", + "NameEnglish": "Aruba", + "NameGerman": "Aruba", + "NameSlovak": "Aruba" + }, + { + "Code": "NC", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 156, + "IsEuMember": false, + "Name": "Nová Kaledonie", + "NameEnglish": "New Caledonia", + "NameGerman": "Neukaledonien", + "NameSlovak": "Nová Kaledónia" + }, + { + "Code": "VU", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 157, + "IsEuMember": false, + "Name": "Vanuatu", + "NameEnglish": "Vanuatu", + "NameGerman": "Vanuatu", + "NameSlovak": "Vanuatu" + }, + { + "Code": "NZ", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 158, + "IsEuMember": false, + "Name": "Nový Zéland", + "NameEnglish": "New Zealand", + "NameGerman": "Neuseeland", + "NameSlovak": "Nový Zéland" + }, + { + "Code": "NI", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 159, + "IsEuMember": false, + "Name": "Nikaragua", + "NameEnglish": "Nicaragua", + "NameGerman": "Nicaragua", + "NameSlovak": "Nikaragua" + }, + { + "Code": "NE", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 160, + "IsEuMember": false, + "Name": "Niger", + "NameEnglish": "Niger (the)", + "NameGerman": "Niger", + "NameSlovak": "Niger" + }, + { + "Code": "NG", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 161, + "IsEuMember": false, + "Name": "Nigérie", + "NameEnglish": "Nigeria", + "NameGerman": "Nigeria", + "NameSlovak": "Nigéria" + }, + { + "Code": "NU", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 162, + "IsEuMember": false, + "Name": "Niue", + "NameEnglish": "Niue", + "NameGerman": "Niue", + "NameSlovak": "Niue" + }, + { + "Code": "NF", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 163, + "IsEuMember": false, + "Name": "Norfolk", + "NameEnglish": "Norfolk Island", + "NameGerman": "Norfolkinsel", + "NameSlovak": "Norfolk" + }, + { + "Code": "NO", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 164, + "IsEuMember": false, + "Name": "Norsko", + "NameEnglish": "Norway", + "NameGerman": "Norwegen", + "NameSlovak": "Nórsko" + }, + { + "Code": "MP", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 165, + "IsEuMember": false, + "Name": "Severní Mariany", + "NameEnglish": "Northern Mariana Islands (the)", + "NameGerman": "Nördliche Marianen", + "NameSlovak": "Severné Mariány" + }, + { + "Code": "UM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 166, + "IsEuMember": false, + "Name": "Menší odlehlé ostrovy USA", + "NameEnglish": "United States Minor Outlying Islands (the)", + "NameGerman": "Kleinere amerikanische Überseeinseln", + "NameSlovak": "Menšie odľahlé ostrovy USA" + }, + { + "Code": "FM", + "CurrencyId": 11, + "DateLastChange": "2018-11-07", + "Id": 167, + "IsEuMember": false, + "Name": "Mikronésie", + "NameEnglish": "Micronesia (Federated States of)", + "NameGerman": "Mikronesien", + "NameSlovak": "Mikronézia" + }, + { + "Code": "MH", + "CurrencyId": 11, + "DateLastChange": "1753-01-01", + "Id": 168, + "IsEuMember": false, + "Name": "Marshallovy ostrovy", + "NameEnglish": "Marshall Islands (the)", + "NameGerman": "Marshallinseln", + "NameSlovak": "Marshallove ostrovy" + }, + { + "Code": "PW", + "CurrencyId": 11, + "DateLastChange": "1753-01-01", + "Id": 169, + "IsEuMember": false, + "Name": "Palau", + "NameEnglish": "Palau", + "NameGerman": "Palau", + "NameSlovak": "Palau" + }, + { + "Code": "PK", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 170, + "IsEuMember": false, + "Name": "Pákistán", + "NameEnglish": "Pakistan", + "NameGerman": "Pakistan", + "NameSlovak": "Pakistan" + }, + { + "Code": "PA", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 171, + "IsEuMember": false, + "Name": "Panama", + "NameEnglish": "Panama", + "NameGerman": "Panama", + "NameSlovak": "Panama" + }, + { + "Code": "PG", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 172, + "IsEuMember": false, + "Name": "Papua Nová Guinea", + "NameEnglish": "Papua New Guinea", + "NameGerman": "Papua-Neuguinea", + "NameSlovak": "Papua Nová Guinea" + }, + { + "Code": "PY", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 173, + "IsEuMember": false, + "Name": "Paraguay", + "NameEnglish": "Paraguay", + "NameGerman": "Paraguay", + "NameSlovak": "Paraguay" + }, + { + "Code": "PE", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 174, + "IsEuMember": false, + "Name": "Peru", + "NameEnglish": "Peru", + "NameGerman": "Peru", + "NameSlovak": "Peru" + }, + { + "Code": "PH", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 175, + "IsEuMember": false, + "Name": "Filipíny", + "NameEnglish": "Philippines (the)", + "NameGerman": "Philippinen", + "NameSlovak": "Filipíny" + }, + { + "Code": "PN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 176, + "IsEuMember": false, + "Name": "Pitcairn", + "NameEnglish": "Pitcairn", + "NameGerman": "Pitcairn", + "NameSlovak": "Pitcairn (ostrov)" + }, + { + "Code": "PL", + "CurrencyId": 8, + "DateLastChange": "1753-01-01", + "Id": 177, + "IsEuMember": true, + "Name": "Polsko", + "NameEnglish": "Poland", + "NameGerman": "Polen", + "NameSlovak": "Poľsko" + }, + { + "Code": "PT", + "CurrencyId": 2, + "DateLastChange": "1753-01-01", + "Id": 178, + "IsEuMember": true, + "Name": "Portugalsko", + "NameEnglish": "Portugal", + "NameGerman": "Portugal", + "NameSlovak": "Portugalsko" + }, + { + "Code": "GW", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 179, + "IsEuMember": false, + "Name": "Guinea-Bissau", + "NameEnglish": "Guinea-Bissau", + "NameGerman": "Guinea-Bissau", + "NameSlovak": "Guinea-Bissau" + }, + { + "Code": "TL", + "CurrencyId": 11, + "DateLastChange": "1753-01-01", + "Id": 180, + "IsEuMember": false, + "Name": "Východní Timor", + "NameEnglish": "Timor-Leste", + "NameGerman": "Osttimor", + "NameSlovak": "Východný Timor" + }, + { + "Code": "PR", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 181, + "IsEuMember": false, + "Name": "Portoriko", + "NameEnglish": "Puerto Rico", + "NameGerman": "Puerto Rico", + "NameSlovak": "Portoriko" + }, + { + "Code": "QA", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 182, + "IsEuMember": false, + "Name": "Katar", + "NameEnglish": "Qatar", + "NameGerman": "Katar", + "NameSlovak": "Katar" + }, + { + "Code": "RE", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 183, + "IsEuMember": false, + "Name": "Réunion", + "NameEnglish": "Réunion", + "NameGerman": "Réunion", + "NameSlovak": "Réunion" + }, + { + "Code": "RO", + "CurrencyId": 9, + "DateLastChange": "1753-01-01", + "Id": 184, + "IsEuMember": true, + "Name": "Rumunsko", + "NameEnglish": "Romania", + "NameGerman": "Rumänien", + "NameSlovak": "Rumunsko" + }, + { + "Code": "RU", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 185, + "IsEuMember": false, + "Name": "Rusko", + "NameEnglish": "Russian Federation (the)", + "NameGerman": "Russland", + "NameSlovak": "Rusko" + }, + { + "Code": "RW", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 186, + "IsEuMember": false, + "Name": "Rwanda", + "NameEnglish": "Rwanda", + "NameGerman": "Ruanda", + "NameSlovak": "Rwanda" + }, + { + "Code": "BL", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 187, + "IsEuMember": false, + "Name": "Svatý Bartoloměj", + "NameEnglish": "Saint Barthélemy", + "NameGerman": "Saint-Barthélemy", + "NameSlovak": "Svätý Bartolomej" + }, + { + "Code": "SH", + "CurrencyId": 1, + "DateLastChange": "2016-07-26", + "Id": 188, + "IsEuMember": false, + "Name": "Svatá Helena", + "NameEnglish": "Saint Helena, Ascension and Tristan da Cunha", + "NameGerman": "St. Helena", + "NameSlovak": "Svätá Helena" + }, + { + "Code": "KN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 189, + "IsEuMember": false, + "Name": "Svatý Kryštof a Nevis", + "NameEnglish": "Saint Kitts and Nevis", + "NameGerman": "St. Kitts und Nevis", + "NameSlovak": "Svätý Krištof a Nevis" + }, + { + "Code": "AI", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 190, + "IsEuMember": false, + "Name": "Anguilla", + "NameEnglish": "Anguilla", + "NameGerman": "Anguilla", + "NameSlovak": "Anguilla" + }, + { + "Code": "LC", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 191, + "IsEuMember": false, + "Name": "Svatá Lucie", + "NameEnglish": "Saint Lucia", + "NameGerman": "St. Lucia", + "NameSlovak": "Svätá Lucia" + }, + { + "Code": "MF", + "CurrencyId": 1, + "DateLastChange": "2018-11-07", + "Id": 192, + "IsEuMember": false, + "Name": "Svatý Martin (FR)", + "NameEnglish": "Saint Martin (French part)", + "NameGerman": "Saint-Martin (französischer Teil)", + "NameSlovak": "Svätý Martin (FR)" + }, + { + "Code": "PM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 193, + "IsEuMember": false, + "Name": "Saint Pierre a Miquelon", + "NameEnglish": "Saint Pierre and Miquelon", + "NameGerman": "Saint-Pierre und Miquelon", + "NameSlovak": "Saint Pierre a Miquelon" + }, + { + "Code": "VC", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 194, + "IsEuMember": false, + "Name": "Svatý Vincenc a Grenadiny", + "NameEnglish": "Saint Vincent and the Grenadines", + "NameGerman": "St. Vincent und die Grenadinen", + "NameSlovak": "Svätý Vincent a Grenadíny" + }, + { + "Code": "SM", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 195, + "IsEuMember": false, + "Name": "San Marino", + "NameEnglish": "San Marino", + "NameGerman": "San Marino", + "NameSlovak": "San Maríno" + }, + { + "Code": "ST", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 196, + "IsEuMember": false, + "Name": "Svatý Tomáš a Princův ostrov", + "NameEnglish": "Sao Tome and Principe", + "NameGerman": "São Tomé und Príncipe", + "NameSlovak": "Svätý Tomáš a Princov ostrov" + }, + { + "Code": "SA", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 197, + "IsEuMember": false, + "Name": "Saúdská Arábie", + "NameEnglish": "Saudi Arabia", + "NameGerman": "Saudi-Arabien", + "NameSlovak": "Saudská Arábia" + }, + { + "Code": "SN", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 198, + "IsEuMember": false, + "Name": "Senegal", + "NameEnglish": "Senegal", + "NameGerman": "Senegal", + "NameSlovak": "Senegal" + }, + { + "Code": "RS", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 199, + "IsEuMember": false, + "Name": "Srbsko", + "NameEnglish": "Serbia", + "NameGerman": "Serbien", + "NameSlovak": "Srbsko" + }, + { + "Code": "SC", + "CurrencyId": 1, + "DateLastChange": "1753-01-01", + "Id": 200, + "IsEuMember": false, + "Name": "Seychely", + "NameEnglish": "Seychelles", + "NameGerman": "Seychellen", + "NameSlovak": "Seychely" + } + ], + "TotalItems": 253, + "TotalPages": 2 + }, + "ErrorCode": 0, + "IsSuccess": true, + "Message": "", + "StatusCode": 200 +} \ No newline at end of file diff --git a/rowers/idoklad_countries.yaml b/rowers/idoklad_countries.yaml new file mode 100644 index 00000000..4ba88406 --- /dev/null +++ b/rowers/idoklad_countries.yaml @@ -0,0 +1,1808 @@ +Data: + Items: + - Code: SK + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 1 + IsEuMember: true + Name: Slovensko + NameEnglish: Slovakia + NameGerman: Slowakei + NameSlovak: Slovensko + - Code: CZ + CurrencyId: 1 + DateLastChange: '2022-10-25' + Id: 2 + IsEuMember: true + Name: Česká republika + NameEnglish: Czechia + NameGerman: Tschechische Republik + NameSlovak: Česká republika + - Code: AF + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 3 + IsEuMember: false + Name: Afghánistán + NameEnglish: Afghanistan + NameGerman: Afghanistan + NameSlovak: Afganistan + - Code: AL + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 4 + IsEuMember: false + Name: Albánie + NameEnglish: Albania + NameGerman: Albanien + NameSlovak: Albánsko + - Code: AQ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 5 + IsEuMember: false + Name: Antarktida + NameEnglish: Antarctica + NameGerman: Antarktis + NameSlovak: Antarktída + - Code: DZ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 6 + IsEuMember: false + Name: Alžírsko + NameEnglish: Algeria + NameGerman: Algerien + NameSlovak: Alžírsko + - Code: AS + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 7 + IsEuMember: false + Name: Americká Samoa + NameEnglish: American Samoa + NameGerman: Amerikanisch-Samoa + NameSlovak: Americká Samoa + - Code: AD + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 8 + IsEuMember: false + Name: Andorra + NameEnglish: Andorra + NameGerman: Andorra + NameSlovak: Andorra + - Code: AO + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 9 + IsEuMember: false + Name: Angola + NameEnglish: Angola + NameGerman: Angola + NameSlovak: Angola + - Code: AG + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 10 + IsEuMember: false + Name: Antigua a Barbuda + NameEnglish: Antigua and Barbuda + NameGerman: Antigua und Barbuda + NameSlovak: Antigua a Barbuda + - Code: AZ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 11 + IsEuMember: false + Name: Ázerbájdžán + NameEnglish: Azerbaijan + NameGerman: Aserbaidschan + NameSlovak: Azerbajdžan + - Code: AR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 12 + IsEuMember: false + Name: Argentina + NameEnglish: Argentina + NameGerman: Argentinien + NameSlovak: Argentína + - Code: AU + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 13 + IsEuMember: false + Name: Austrálie + NameEnglish: Australia + NameGerman: Australien + NameSlovak: Austrália + - Code: AT + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 14 + IsEuMember: true + Name: Rakousko + NameEnglish: Austria + NameGerman: Österreich + NameSlovak: Rakúsko + - Code: BS + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 15 + IsEuMember: false + Name: Bahamy + NameEnglish: Bahamas (The) + NameGerman: Bahamas + NameSlovak: Bahamy + - Code: BH + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 16 + IsEuMember: false + Name: Bahrajn + NameEnglish: Bahrain + NameGerman: Bahrain + NameSlovak: Bahrajn + - Code: BD + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 17 + IsEuMember: false + Name: Bangladéš + NameEnglish: Bangladesh + NameGerman: Bangladesch + NameSlovak: Bangladéš + - Code: AM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 18 + IsEuMember: false + Name: Arménie + NameEnglish: Armenia + NameGerman: Armenien + NameSlovak: Arménsko + - Code: BB + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 19 + IsEuMember: false + Name: Barbados + NameEnglish: Barbados + NameGerman: Barbados + NameSlovak: Barbados + - Code: BE + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 20 + IsEuMember: true + Name: Belgie + NameEnglish: Belgium + NameGerman: 'Belgien ' + NameSlovak: Belgicko + - Code: BM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 21 + IsEuMember: false + Name: Bermudy + NameEnglish: Bermuda + NameGerman: Bermuda + NameSlovak: Bermudy + - Code: BT + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 22 + IsEuMember: false + Name: Bhútán + NameEnglish: Bhutan + NameGerman: Bhutan + NameSlovak: Bhután + - Code: BO + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 23 + IsEuMember: false + Name: Bolívie + NameEnglish: Bolivia (Plurinational State of) + NameGerman: Bolivien + NameSlovak: Bolívia + - Code: BA + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 24 + IsEuMember: false + Name: Bosna a Hercegovina + NameEnglish: Bosnia and Herzegovina + NameGerman: ' Bosnien und Herzegowina' + NameSlovak: Bosna a Hercegovina + - Code: BW + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 25 + IsEuMember: false + Name: Botswana + NameEnglish: Botswana + NameGerman: Botswana + NameSlovak: Botswana + - Code: BV + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 26 + IsEuMember: false + Name: Bouvetův ostrov + NameEnglish: Bouvet Island + NameGerman: Bouvetinsel + NameSlovak: Bouvetov ostrov + - Code: BR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 27 + IsEuMember: false + Name: Brazílie + NameEnglish: Brazil + NameGerman: Brasilien + NameSlovak: Brazília + - Code: BZ + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 28 + IsEuMember: false + Name: Belize + NameEnglish: Belize + NameGerman: Belize + NameSlovak: Belize + - Code: IO + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 29 + IsEuMember: false + Name: Britské indickooceánské území + NameEnglish: "British Indian Ocean Territory (the)\r\n" + NameGerman: Britisches Territorium im Indischen Ozean + NameSlovak: Britské indickooceánske územie + - Code: SB + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 30 + IsEuMember: false + Name: Šalomounovy ostrovy + NameEnglish: Solomon Islands + NameGerman: Salomonen + NameSlovak: Šalamúnove ostrovy + - Code: VG + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 31 + IsEuMember: false + Name: Britské Panenské ostrovy + NameEnglish: Virgin Islands (British) + NameGerman: Britische Jungferninseln + NameSlovak: Britské Panenské ostrovy + - Code: XK + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 32 + IsEuMember: false + Name: Kosovo + NameEnglish: Republic of Kosovo + NameGerman: Kosovo + NameSlovak: Kosovo + - Code: BN + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 33 + IsEuMember: false + Name: Brunej + NameEnglish: Brunei Darussalam + NameGerman: Brunei + NameSlovak: Brunej + - Code: BG + CurrencyId: 3 + DateLastChange: '1753-01-01' + Id: 34 + IsEuMember: true + Name: Bulharsko + NameEnglish: Bulgaria + NameGerman: Bulgarien + NameSlovak: Bulharsko + - Code: MM + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 35 + IsEuMember: false + Name: Myanmar + NameEnglish: Myanmar + NameGerman: Myanmar + NameSlovak: Mjanmarsko + - Code: BI + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 36 + IsEuMember: false + Name: Burundi + NameEnglish: Burundi + NameGerman: Burundi + NameSlovak: Burundi + - Code: BY + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 37 + IsEuMember: false + Name: Bělorusko + NameEnglish: Belarus + NameGerman: Belarus + NameSlovak: Bielorusko + - Code: KH + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 38 + IsEuMember: false + Name: Kambodža + NameEnglish: Cambodia + NameGerman: Kambodscha + NameSlovak: Kambodža + - Code: CM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 39 + IsEuMember: false + Name: Kamerun + NameEnglish: Cameroon + NameGerman: Kamerun + NameSlovak: Kamerun + - Code: CA + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 40 + IsEuMember: false + Name: Kanada + NameEnglish: Canada + NameGerman: Kanada + NameSlovak: Kanada + - Code: CV + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 41 + IsEuMember: false + Name: Kapverdy + NameEnglish: Cape Verde + NameGerman: Kap Verde + NameSlovak: Kapverdy + - Code: KY + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 42 + IsEuMember: false + Name: Kajmanské ostrovy + NameEnglish: Cayman Islands (the) + NameGerman: Kaimaninseln + NameSlovak: Kajmanské ostrovy + - Code: CF + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 43 + IsEuMember: false + Name: Středoafrická republika + NameEnglish: Central African Republic (the) + NameGerman: Zentralafrikanische Republik + NameSlovak: Stredoafrická republika + - Code: LK + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 44 + IsEuMember: false + Name: Šrí Lanka + NameEnglish: Sri Lanka + NameGerman: Sri Lanka + NameSlovak: Srí Lanka + - Code: TD + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 45 + IsEuMember: false + Name: Čad + NameEnglish: Chad + NameGerman: Tschad + NameSlovak: Čad + - Code: CL + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 46 + IsEuMember: false + Name: Chile + NameEnglish: Chile + NameGerman: 'Chile ' + NameSlovak: Čile + - Code: CN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 47 + IsEuMember: false + Name: Čína + NameEnglish: China + NameGerman: China + NameSlovak: Čína + - Code: TW + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 48 + IsEuMember: false + Name: Tchaj-wan + NameEnglish: Taiwan (Province of China) + NameGerman: Taiwan + NameSlovak: Taiwan + - Code: CX + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 49 + IsEuMember: false + Name: Vánoční ostrov + NameEnglish: Christmas Island + NameGerman: Weihnachtsinsel + NameSlovak: Vianočný ostrov + - Code: CC + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 50 + IsEuMember: false + Name: Kokosové (Keelingovy) ostrovy + NameEnglish: Cocos (Keeling) Islands (the) + NameGerman: Kokosinseln (Keelinginseln) + NameSlovak: Kokosové (Keelingove) ostrovy + - Code: CO + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 51 + IsEuMember: false + Name: Kolumbie + NameEnglish: Colombia + NameGerman: Kolumbien + NameSlovak: Kolumbia + - Code: KM + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 52 + IsEuMember: false + Name: Komory + NameEnglish: Comoros (the) + NameGerman: Komoren + NameSlovak: Komory + - Code: YT + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 53 + IsEuMember: false + Name: Mayotte + NameEnglish: Mayotte + NameGerman: Mayotte + NameSlovak: Mayotte + - Code: CG + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 54 + IsEuMember: false + Name: Konžská republika + NameEnglish: Congo (the) + NameGerman: Republik Kongo + NameSlovak: Konžská republika + - Code: CD + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 55 + IsEuMember: false + Name: Demokratická republika Kongo + NameEnglish: Congo (the Democratic Republic of the) + NameGerman: Demokratische Republik Kongo + NameSlovak: Konžská demokratická republika + - Code: CK + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 56 + IsEuMember: false + Name: Cookovy ostrovy + NameEnglish: Cook Islands (the) + NameGerman: Cookinseln + NameSlovak: Cookove ostrovy + - Code: CR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 57 + IsEuMember: false + Name: Kostarika + NameEnglish: Costa Rica + NameGerman: Costa Rica + NameSlovak: Kostarika + - Code: HR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 58 + IsEuMember: true + Name: Chorvatsko + NameEnglish: Croatia + NameGerman: Kroatien + NameSlovak: Chorvátsko + - Code: CU + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 59 + IsEuMember: false + Name: Kuba + NameEnglish: Cuba + NameGerman: Kuba + NameSlovak: Kuba + - Code: CY + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 60 + IsEuMember: true + Name: Kypr + NameEnglish: Cyprus + NameGerman: Zypern + NameSlovak: Cyprus + - Code: BJ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 61 + IsEuMember: false + Name: Benin + NameEnglish: Benin + NameGerman: Benin + NameSlovak: Benin + - Code: DK + CurrencyId: 4 + DateLastChange: '1753-01-01' + Id: 62 + IsEuMember: true + Name: Dánsko + NameEnglish: Denmark + NameGerman: Dänemark + NameSlovak: Dánsko + - Code: DM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 63 + IsEuMember: false + Name: Dominika + NameEnglish: Dominica + NameGerman: Dominica + NameSlovak: Dominika + - Code: DO + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 64 + IsEuMember: false + Name: Dominikánská republika + NameEnglish: Dominican Republic (the) + NameGerman: Dominikanische Republik + NameSlovak: Dominikánska republika + - Code: EC + CurrencyId: 11 + DateLastChange: '1753-01-01' + Id: 65 + IsEuMember: false + Name: Ekvádor + NameEnglish: Ecuador + NameGerman: Ecuador + NameSlovak: Ekvádor + - Code: SV + CurrencyId: 11 + DateLastChange: '1753-01-01' + Id: 66 + IsEuMember: false + Name: Salvador + NameEnglish: El Salvador + NameGerman: El Salvador + NameSlovak: Salvador + - Code: GQ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 67 + IsEuMember: false + Name: Rovníková Guinea + NameEnglish: Equatorial Guinea + NameGerman: Äquatorialguinea + NameSlovak: Rovníková Guinea + - Code: ET + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 68 + IsEuMember: false + Name: Etiopie + NameEnglish: Ethiopia + NameGerman: Äthiopien + NameSlovak: Etiópia + - Code: ER + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 69 + IsEuMember: false + Name: Eritrea + NameEnglish: Eritrea + NameGerman: Eritrea + NameSlovak: Eritrejský štát + - Code: EE + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 70 + IsEuMember: true + Name: Estonsko + NameEnglish: Estonia + NameGerman: Estland + NameSlovak: Estónsko + - Code: FO + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 71 + IsEuMember: false + Name: Faerské ostrovy + NameEnglish: Faroe Islands (the) + NameGerman: Färöer + NameSlovak: Faerské ostrovy + - Code: FK + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 72 + IsEuMember: false + Name: Falklandy + NameEnglish: Falkland Islands (the) (Malvinas) + NameGerman: Falklandinseln + NameSlovak: Falklandy + - Code: GS + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 73 + IsEuMember: false + Name: Jižní Georgie a Jižní Sandwichovy ostrovy + NameEnglish: South Georgia and the South Sandwich Islands + NameGerman: Südgeorgien und die Südlichen Sandwichinseln + NameSlovak: Južná Georgia a Južné Sandwichove ostrovy + - Code: FJ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 74 + IsEuMember: false + Name: Fidži + NameEnglish: Fiji + NameGerman: Fidschi + NameSlovak: Fidži + - Code: FI + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 75 + IsEuMember: true + Name: Finsko + NameEnglish: Finland + NameGerman: Finnland + NameSlovak: Fínsko + - Code: AX + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 76 + IsEuMember: false + Name: Alandy + NameEnglish: Åland Islands + NameGerman: Åland + NameSlovak: Alandy + - Code: FR + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 77 + IsEuMember: true + Name: Francie + NameEnglish: France + NameGerman: Frankreich + NameSlovak: Francúzsko + - Code: GF + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 78 + IsEuMember: false + Name: Francouzská Guyana + NameEnglish: French Guiana + NameGerman: Französisch-Guyana + NameSlovak: Francúzska Guyana + - Code: PF + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 79 + IsEuMember: false + Name: Francouzská Polynésie + NameEnglish: French Polynesia + NameGerman: Französisch-Polynesien + NameSlovak: Francúzska Polynézia + - Code: TF + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 80 + IsEuMember: false + Name: Francouzská jižní a antarktická území + NameEnglish: French Southern Territories (the) + NameGerman: Französisch Süd- und Antarktisgebiete + NameSlovak: Francúzske južné a antarktické územia + - Code: DJ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 81 + IsEuMember: false + Name: Džibutsko + NameEnglish: Djibouti + NameGerman: Dschibuti + NameSlovak: Džibutsko + - Code: GA + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 82 + IsEuMember: false + Name: Gabon + NameEnglish: Gabon + NameGerman: Gabon + NameSlovak: Gabon + - Code: GE + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 83 + IsEuMember: false + Name: Gruzie + NameEnglish: Georgia + NameGerman: Georgien + NameSlovak: Gruzínska republika + - Code: GM + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 84 + IsEuMember: false + Name: Gambie + NameEnglish: Gambia (the) + NameGerman: Gambia + NameSlovak: Gambia + - Code: PS + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 85 + IsEuMember: false + Name: Palestina + NameEnglish: Palestine, State of + NameGerman: Palästina + NameSlovak: Palestína + - Code: DE + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 86 + IsEuMember: true + Name: Německo + NameEnglish: Germany + NameGerman: Deutschland + NameSlovak: Nemecko + - Code: GH + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 87 + IsEuMember: false + Name: Ghana + NameEnglish: Ghana + NameGerman: Ghana + NameSlovak: Ghana + - Code: GI + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 88 + IsEuMember: false + Name: Gibraltar + NameEnglish: Gibraltar + NameGerman: Gibraltar + NameSlovak: Gibraltár + - Code: KI + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 89 + IsEuMember: false + Name: Kiribati + NameEnglish: Kiribati + NameGerman: Kiribati + NameSlovak: Kiribati + - Code: GR + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 90 + IsEuMember: true + Name: Řecko + NameEnglish: Greece + NameGerman: Griechenland + NameSlovak: Grécko + - Code: GL + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 91 + IsEuMember: false + Name: Grónsko + NameEnglish: Greenland + NameGerman: Grönland + NameSlovak: Grónsko + - Code: GD + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 92 + IsEuMember: false + Name: Grenada + NameEnglish: Grenada + NameGerman: Grenada + NameSlovak: Grenada + - Code: GP + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 93 + IsEuMember: false + Name: Guadeloupe + NameEnglish: Guadeloupe + NameGerman: Guadeloupe + NameSlovak: Guadeloupe + - Code: GU + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 94 + IsEuMember: false + Name: Guam + NameEnglish: Guam + NameGerman: Guam + NameSlovak: Guam + - Code: GT + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 95 + IsEuMember: false + Name: Guatemala + NameEnglish: Guatemala + NameGerman: Guatemala + NameSlovak: Guatemala + - Code: GN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 96 + IsEuMember: false + Name: Guinea + NameEnglish: Guinea + NameGerman: Guinea + NameSlovak: Guinea + - Code: GY + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 97 + IsEuMember: false + Name: Guyana + NameEnglish: Guyana + NameGerman: Guyana + NameSlovak: Guyana + - Code: HT + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 98 + IsEuMember: false + Name: Haiti + NameEnglish: Haiti + NameGerman: Haiti + NameSlovak: Haiti + - Code: HM + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 99 + IsEuMember: false + Name: Heardův ostrov a MacDonaldovy ostrovy + NameEnglish: Heard Island and McDonald Islands + NameGerman: Heard und die McDonaldinseln + NameSlovak: Heardov ostrov a Macdonaldove ostrovy + - Code: VA + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 100 + IsEuMember: false + Name: Vatikán + NameEnglish: Holy See (the) + NameGerman: Vatikanstadt + NameSlovak: Vatikán + - Code: HN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 101 + IsEuMember: false + Name: Honduras + NameEnglish: Honduras + NameGerman: Honduras + NameSlovak: Honduras + - Code: HK + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 102 + IsEuMember: false + Name: Hongkong + NameEnglish: Hong Kong + NameGerman: Hongkong + NameSlovak: Hongkong + - Code: HU + CurrencyId: 5 + DateLastChange: '1753-01-01' + Id: 103 + IsEuMember: true + Name: Maďarsko + NameEnglish: Hungary + NameGerman: Ungarn + NameSlovak: Maďarsko + - Code: IS + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 104 + IsEuMember: false + Name: Island + NameEnglish: Iceland + NameGerman: Island + NameSlovak: Island + - Code: IN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 105 + IsEuMember: false + Name: Indie + NameEnglish: India + NameGerman: Indien + NameSlovak: India + - Code: ID + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 106 + IsEuMember: false + Name: Indonésie + NameEnglish: Indonesia + NameGerman: Indonesien + NameSlovak: Indonézia + - Code: IR + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 107 + IsEuMember: false + Name: Írán + NameEnglish: Iran (Islamic Republic of) + NameGerman: Iran + NameSlovak: Irán + - Code: IQ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 108 + IsEuMember: false + Name: Irák + NameEnglish: Iraq + NameGerman: Irak + NameSlovak: Irak + - Code: IE + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 109 + IsEuMember: true + Name: Irsko + NameEnglish: Ireland + NameGerman: Irland + NameSlovak: Írsko + - Code: IL + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 110 + IsEuMember: false + Name: Izrael + NameEnglish: Israel + NameGerman: Israel + NameSlovak: Izrael + - Code: IT + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 111 + IsEuMember: true + Name: Itálie + NameEnglish: Italy + NameGerman: Italien + NameSlovak: Taliansko + - Code: CI + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 112 + IsEuMember: false + Name: Pobřeží slonoviny + NameEnglish: Côte d'Ivoire + NameGerman: Côte d'Ivoire + NameSlovak: Pobrežie Slonoviny + - Code: JM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 113 + IsEuMember: false + Name: Jamajka + NameEnglish: Jamaica + NameGerman: Jamaika + NameSlovak: Jamajka + - Code: JP + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 114 + IsEuMember: false + Name: Japonsko + NameEnglish: Japan + NameGerman: Japan + NameSlovak: Japonsko + - Code: KZ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 115 + IsEuMember: false + Name: Kazachstán + NameEnglish: Kazakhstan + NameGerman: Kasachstan + NameSlovak: Kazachstan + - Code: JO + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 116 + IsEuMember: false + Name: Jordánsko + NameEnglish: Jordan + NameGerman: Jordanien + NameSlovak: Jordánsko + - Code: KE + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 117 + IsEuMember: false + Name: Keňa + NameEnglish: Kenya + NameGerman: Kenia + NameSlovak: Keňa + - Code: KP + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 118 + IsEuMember: false + Name: Korejská lidově demokratická republika + NameEnglish: Korea (the Democratic People's Republic of) + NameGerman: Demokratische Volksrepublik Korea + NameSlovak: Kórejská ľudovodemokratická republika + - Code: KR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 119 + IsEuMember: false + Name: Korejská republika + NameEnglish: Korea (the Republic of) + NameGerman: Republik Korea + NameSlovak: Kórejská republika + - Code: KW + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 120 + IsEuMember: false + Name: Kuvajt + NameEnglish: Kuwait + NameGerman: Kuwait + NameSlovak: Kuvajt + - Code: KG + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 121 + IsEuMember: false + Name: Kyrgyzstán + NameEnglish: Kyrgyzstan + NameGerman: Kirgisistan + NameSlovak: Kirgizsko + - Code: LA + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 122 + IsEuMember: false + Name: Laos + NameEnglish: Lao People's Democratic Republic (the) + NameGerman: Laos + NameSlovak: Laos + - Code: LB + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 123 + IsEuMember: false + Name: Libanon + NameEnglish: Lebanon + NameGerman: Libanon + NameSlovak: Libanon + - Code: LS + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 124 + IsEuMember: false + Name: Lesotho + NameEnglish: Lesotho + NameGerman: Lesotho + NameSlovak: Lesotho + - Code: LV + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 125 + IsEuMember: true + Name: Lotyšsko + NameEnglish: Latvia + NameGerman: Lettland + NameSlovak: Lotyšsko + - Code: LR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 126 + IsEuMember: false + Name: Libérie + NameEnglish: Liberia + NameGerman: Liberia + NameSlovak: Libéria + - Code: LY + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 127 + IsEuMember: false + Name: Libye + NameEnglish: Libya + NameGerman: Libyen + NameSlovak: Líbyjský štát + - Code: LI + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 128 + IsEuMember: false + Name: Lichtenštejnsko + NameEnglish: Liechtenstein + NameGerman: Liechtenstein + NameSlovak: Lichtenštajnsko + - Code: LT + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 129 + IsEuMember: true + Name: Litva + NameEnglish: Lithuania + NameGerman: Litauen + NameSlovak: Litva + - Code: LU + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 130 + IsEuMember: true + Name: Lucembursko + NameEnglish: Luxembourg + NameGerman: Luxemburg + NameSlovak: Luxembursko + - Code: MO + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 131 + IsEuMember: false + Name: Macao + NameEnglish: Macao + NameGerman: Macao + NameSlovak: Macao + - Code: MG + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 132 + IsEuMember: false + Name: Madagaskar + NameEnglish: Madagascar + NameGerman: Madagaskar + NameSlovak: Madagaskar + - Code: MW + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 133 + IsEuMember: false + Name: Malawi + NameEnglish: Malawi + NameGerman: Malawi + NameSlovak: Malawi + - Code: MY + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 134 + IsEuMember: false + Name: Malajsie + NameEnglish: Malaysia + NameGerman: Malaysia + NameSlovak: Malajzia + - Code: MV + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 135 + IsEuMember: false + Name: Maledivy + NameEnglish: Maldives + NameGerman: Malediven + NameSlovak: Maledivy + - Code: ML + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 136 + IsEuMember: false + Name: Mali + NameEnglish: Mali + NameGerman: Mali + NameSlovak: Mali + - Code: MT + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 137 + IsEuMember: true + Name: Malta + NameEnglish: Malta + NameGerman: Malta + NameSlovak: Malta + - Code: MQ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 138 + IsEuMember: false + Name: Martinik + NameEnglish: Martinique + NameGerman: Martinique + NameSlovak: Martinik + - Code: MR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 139 + IsEuMember: false + Name: Mauritánie + NameEnglish: Mauritania + NameGerman: Mauretanien + NameSlovak: Mauritánia + - Code: MU + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 140 + IsEuMember: false + Name: Mauricius + NameEnglish: Mauritius + NameGerman: Mauritius + NameSlovak: Mauricius + - Code: MX + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 141 + IsEuMember: false + Name: Mexiko + NameEnglish: Mexico + NameGerman: Mexiko + NameSlovak: Mexiko + - Code: MC + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 142 + IsEuMember: false + Name: Monako + NameEnglish: Monaco + NameGerman: Monaco + NameSlovak: Monako + - Code: MN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 143 + IsEuMember: false + Name: Mongolsko + NameEnglish: Mongolia + NameGerman: Mongolei + NameSlovak: Mongolská republika + - Code: MD + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 144 + IsEuMember: false + Name: Moldavsko + NameEnglish: Moldova (the Republic of) + NameGerman: Moldau + NameSlovak: Moldavsko + - Code: ME + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 145 + IsEuMember: false + Name: Černá Hora + NameEnglish: Montenegro + NameGerman: Montenegro + NameSlovak: Čierna Hora + - Code: MS + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 146 + IsEuMember: false + Name: Montserrat + NameEnglish: Montserrat + NameGerman: Montserrat + NameSlovak: Montserrat + - Code: MA + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 147 + IsEuMember: false + Name: Maroko + NameEnglish: Morocco + NameGerman: Marokko + NameSlovak: Maroko + - Code: MZ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 148 + IsEuMember: false + Name: Mosambik + NameEnglish: Mozambique + NameGerman: Mosambik + NameSlovak: Mozambik + - Code: OM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 149 + IsEuMember: false + Name: Omán + NameEnglish: Oman + NameGerman: Oman + NameSlovak: Omán + - Code: NA + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 150 + IsEuMember: false + Name: Namibie + NameEnglish: Namibia + NameGerman: Namibia + NameSlovak: Namíbia + - Code: NR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 151 + IsEuMember: false + Name: Nauru + NameEnglish: Nauru + NameGerman: Nauru + NameSlovak: Nauru + - Code: NP + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 152 + IsEuMember: false + Name: Nepál + NameEnglish: Nepal + NameGerman: 'Nepal ' + NameSlovak: Nepál + - Code: NL + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 153 + IsEuMember: true + Name: Nizozemsko + NameEnglish: Netherlands (the) + NameGerman: Niederlande + NameSlovak: Holandsko + - Code: AN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 154 + IsEuMember: false + Name: Nizozemské Antily + NameEnglish: Netherlands Antilles + NameGerman: Niederländische Antillen + NameSlovak: Holandské Antily + - Code: AW + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 155 + IsEuMember: false + Name: Aruba + NameEnglish: Aruba + NameGerman: Aruba + NameSlovak: Aruba + - Code: NC + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 156 + IsEuMember: false + Name: Nová Kaledonie + NameEnglish: New Caledonia + NameGerman: Neukaledonien + NameSlovak: Nová Kaledónia + - Code: VU + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 157 + IsEuMember: false + Name: Vanuatu + NameEnglish: Vanuatu + NameGerman: Vanuatu + NameSlovak: Vanuatu + - Code: NZ + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 158 + IsEuMember: false + Name: Nový Zéland + NameEnglish: New Zealand + NameGerman: Neuseeland + NameSlovak: Nový Zéland + - Code: NI + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 159 + IsEuMember: false + Name: Nikaragua + NameEnglish: Nicaragua + NameGerman: Nicaragua + NameSlovak: Nikaragua + - Code: NE + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 160 + IsEuMember: false + Name: Niger + NameEnglish: Niger (the) + NameGerman: Niger + NameSlovak: Niger + - Code: NG + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 161 + IsEuMember: false + Name: Nigérie + NameEnglish: Nigeria + NameGerman: Nigeria + NameSlovak: Nigéria + - Code: NU + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 162 + IsEuMember: false + Name: Niue + NameEnglish: Niue + NameGerman: Niue + NameSlovak: Niue + - Code: NF + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 163 + IsEuMember: false + Name: Norfolk + NameEnglish: Norfolk Island + NameGerman: Norfolkinsel + NameSlovak: Norfolk + - Code: 'NO' + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 164 + IsEuMember: false + Name: Norsko + NameEnglish: Norway + NameGerman: Norwegen + NameSlovak: Nórsko + - Code: MP + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 165 + IsEuMember: false + Name: Severní Mariany + NameEnglish: Northern Mariana Islands (the) + NameGerman: Nördliche Marianen + NameSlovak: Severné Mariány + - Code: UM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 166 + IsEuMember: false + Name: Menší odlehlé ostrovy USA + NameEnglish: United States Minor Outlying Islands (the) + NameGerman: Kleinere amerikanische Überseeinseln + NameSlovak: Menšie odľahlé ostrovy USA + - Code: FM + CurrencyId: 11 + DateLastChange: '2018-11-07' + Id: 167 + IsEuMember: false + Name: Mikronésie + NameEnglish: Micronesia (Federated States of) + NameGerman: Mikronesien + NameSlovak: Mikronézia + - Code: MH + CurrencyId: 11 + DateLastChange: '1753-01-01' + Id: 168 + IsEuMember: false + Name: Marshallovy ostrovy + NameEnglish: Marshall Islands (the) + NameGerman: Marshallinseln + NameSlovak: Marshallove ostrovy + - Code: PW + CurrencyId: 11 + DateLastChange: '1753-01-01' + Id: 169 + IsEuMember: false + Name: Palau + NameEnglish: Palau + NameGerman: Palau + NameSlovak: Palau + - Code: PK + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 170 + IsEuMember: false + Name: Pákistán + NameEnglish: Pakistan + NameGerman: Pakistan + NameSlovak: Pakistan + - Code: PA + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 171 + IsEuMember: false + Name: Panama + NameEnglish: Panama + NameGerman: Panama + NameSlovak: Panama + - Code: PG + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 172 + IsEuMember: false + Name: Papua Nová Guinea + NameEnglish: Papua New Guinea + NameGerman: Papua-Neuguinea + NameSlovak: Papua Nová Guinea + - Code: PY + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 173 + IsEuMember: false + Name: Paraguay + NameEnglish: Paraguay + NameGerman: Paraguay + NameSlovak: Paraguay + - Code: PE + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 174 + IsEuMember: false + Name: Peru + NameEnglish: Peru + NameGerman: Peru + NameSlovak: Peru + - Code: PH + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 175 + IsEuMember: false + Name: Filipíny + NameEnglish: Philippines (the) + NameGerman: Philippinen + NameSlovak: Filipíny + - Code: PN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 176 + IsEuMember: false + Name: Pitcairn + NameEnglish: Pitcairn + NameGerman: Pitcairn + NameSlovak: Pitcairn (ostrov) + - Code: PL + CurrencyId: 8 + DateLastChange: '1753-01-01' + Id: 177 + IsEuMember: true + Name: Polsko + NameEnglish: Poland + NameGerman: Polen + NameSlovak: Poľsko + - Code: PT + CurrencyId: 2 + DateLastChange: '1753-01-01' + Id: 178 + IsEuMember: true + Name: Portugalsko + NameEnglish: Portugal + NameGerman: Portugal + NameSlovak: Portugalsko + - Code: GW + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 179 + IsEuMember: false + Name: Guinea-Bissau + NameEnglish: Guinea-Bissau + NameGerman: Guinea-Bissau + NameSlovak: Guinea-Bissau + - Code: TL + CurrencyId: 11 + DateLastChange: '1753-01-01' + Id: 180 + IsEuMember: false + Name: Východní Timor + NameEnglish: Timor-Leste + NameGerman: Osttimor + NameSlovak: Východný Timor + - Code: PR + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 181 + IsEuMember: false + Name: Portoriko + NameEnglish: Puerto Rico + NameGerman: Puerto Rico + NameSlovak: Portoriko + - Code: QA + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 182 + IsEuMember: false + Name: Katar + NameEnglish: Qatar + NameGerman: Katar + NameSlovak: Katar + - Code: RE + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 183 + IsEuMember: false + Name: Réunion + NameEnglish: Réunion + NameGerman: Réunion + NameSlovak: Réunion + - Code: RO + CurrencyId: 9 + DateLastChange: '1753-01-01' + Id: 184 + IsEuMember: true + Name: Rumunsko + NameEnglish: Romania + NameGerman: Rumänien + NameSlovak: Rumunsko + - Code: RU + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 185 + IsEuMember: false + Name: Rusko + NameEnglish: Russian Federation (the) + NameGerman: Russland + NameSlovak: Rusko + - Code: RW + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 186 + IsEuMember: false + Name: Rwanda + NameEnglish: Rwanda + NameGerman: Ruanda + NameSlovak: Rwanda + - Code: BL + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 187 + IsEuMember: false + Name: Svatý Bartoloměj + NameEnglish: Saint Barthélemy + NameGerman: Saint-Barthélemy + NameSlovak: Svätý Bartolomej + - Code: SH + CurrencyId: 1 + DateLastChange: '2016-07-26' + Id: 188 + IsEuMember: false + Name: Svatá Helena + NameEnglish: Saint Helena, Ascension and Tristan da Cunha + NameGerman: St. Helena + NameSlovak: Svätá Helena + - Code: KN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 189 + IsEuMember: false + Name: Svatý Kryštof a Nevis + NameEnglish: Saint Kitts and Nevis + NameGerman: St. Kitts und Nevis + NameSlovak: Svätý Krištof a Nevis + - Code: AI + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 190 + IsEuMember: false + Name: Anguilla + NameEnglish: Anguilla + NameGerman: Anguilla + NameSlovak: Anguilla + - Code: LC + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 191 + IsEuMember: false + Name: Svatá Lucie + NameEnglish: Saint Lucia + NameGerman: St. Lucia + NameSlovak: Svätá Lucia + - Code: MF + CurrencyId: 1 + DateLastChange: '2018-11-07' + Id: 192 + IsEuMember: false + Name: Svatý Martin (FR) + NameEnglish: Saint Martin (French part) + NameGerman: Saint-Martin (französischer Teil) + NameSlovak: Svätý Martin (FR) + - Code: PM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 193 + IsEuMember: false + Name: Saint Pierre a Miquelon + NameEnglish: Saint Pierre and Miquelon + NameGerman: Saint-Pierre und Miquelon + NameSlovak: Saint Pierre a Miquelon + - Code: VC + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 194 + IsEuMember: false + Name: Svatý Vincenc a Grenadiny + NameEnglish: Saint Vincent and the Grenadines + NameGerman: St. Vincent und die Grenadinen + NameSlovak: Svätý Vincent a Grenadíny + - Code: SM + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 195 + IsEuMember: false + Name: San Marino + NameEnglish: San Marino + NameGerman: San Marino + NameSlovak: San Maríno + - Code: ST + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 196 + IsEuMember: false + Name: Svatý Tomáš a Princův ostrov + NameEnglish: Sao Tome and Principe + NameGerman: São Tomé und Príncipe + NameSlovak: Svätý Tomáš a Princov ostrov + - Code: SA + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 197 + IsEuMember: false + Name: Saúdská Arábie + NameEnglish: Saudi Arabia + NameGerman: Saudi-Arabien + NameSlovak: Saudská Arábia + - Code: SN + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 198 + IsEuMember: false + Name: Senegal + NameEnglish: Senegal + NameGerman: Senegal + NameSlovak: Senegal + - Code: RS + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 199 + IsEuMember: false + Name: Srbsko + NameEnglish: Serbia + NameGerman: Serbien + NameSlovak: Srbsko + - Code: SC + CurrencyId: 1 + DateLastChange: '1753-01-01' + Id: 200 + IsEuMember: false + Name: Seychely + NameEnglish: Seychelles + NameGerman: Seychellen + NameSlovak: Seychely + TotalItems: 253 + TotalPages: 2 +ErrorCode: 0 +IsSuccess: true +Message: '' +StatusCode: 200 diff --git a/rowers/models.py b/rowers/models.py index 310b93a4..857a2680 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -5376,3 +5376,16 @@ class ForceCurveAnalysis(models.Model): date = self.date) return s + +class iDokladToken(models.Model): + access_token = models.CharField(max_length=512) + refresh_token = models.CharField(max_length=512) + id_token = models.CharField(max_length=512) + token_type = models.CharField(max_length=512) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + expires_in = models.IntegerField() # Store token expiry duration in seconds + + def __str__(self): + return f"iDoklad Token updated at {self.updated_at}, expires at {self.updated_at+datetime.timedelta(seconds=self.expires_in)}" + diff --git a/rowers/tests/mocks.py b/rowers/tests/mocks.py index 0942905b..512b2429 100644 --- a/rowers/tests/mocks.py +++ b/rowers/tests/mocks.py @@ -57,6 +57,14 @@ from rowers.dataprep import delete_strokedata from redis import StrictRedis redis_connection = StrictRedis() +def mocked_idoklad_token(*args, **kwargs): # pragma: no cover + class MockToken: + def __init__(self, *args,**kwargs): + self.access_token = "aap" + + return MockToken() + + def mocked_grpc(*args, **kwargs): # pragma: no cover class insecure_channel: @@ -773,6 +781,9 @@ def mocked_requests(*args, **kwargs): with open('rowers/tests/testdata/rp3_list.json','r') as infile: rp3workoutlist = json.load(infile) + with open('rowers/tests/testdata/idoklad_default.json','r') as infile: + idokladdefault = json.load(infile) + rp3linkready = {'data': {'download': {'id': 591621, 'status': 'ready', 'link': 'https://rp3rowing-app.com/api/workouts/591621/download?type=csv'}}} with open('rowers/tests/testdata/example-session-strokes-with-impeller-data.json','r') as infile: @@ -1117,6 +1128,7 @@ def mocked_requests(*args, **kwargs): rp3tester = re.compile(r'.*?rp3rowing-app\.com') garmintester = re.compile(r'.*?garmin\.com') fakturoidtester = re.compile(r'.*?fakturoid\.cz') + idokladtester = re.compile(r'.*?idoklad\.cz') polarlistregex = r'.*?polaraccesslink\.com\/.*\/(\d+)$' polarlisttester = re.compile(polarlistregex) @@ -1487,6 +1499,43 @@ def mocked_requests(*args, **kwargs): else: # pragma: no cover return MockResponse(c2workoutdata,200) + + if idokladtester.match(args[0]): + if 'Invoices' in args[0]: + if 'Default' in args[0]: + response_data = idokladdefault + + return MockResponse(response_data,200) + + response = { + 'Data': { + 'Id': 1, + } + } + return MockResponse(response,200) + + if 'Contacts' in args[0]: + response = { + 'Data': { + 'Items': [ + { + 'Id': 1, + 'url':'aap', + } + ] + } + } + + return MockResponse(response,200) + + response = [ + { + 'Id':1, + 'url':'aap', + } + ] + return MockResponse(response, 200) + if fakturoidtester.match(args[0]): if 'invoices' in args[0]: response = { diff --git a/rowers/tests/test_braintree.py b/rowers/tests/test_braintree.py index ca540e2b..3d32d19c 100644 --- a/rowers/tests/test_braintree.py +++ b/rowers/tests/test_braintree.py @@ -74,11 +74,12 @@ class BraintreeUnits(TestCase): self.p2 = PaidPlan.objects.create(price=25,paymentprocessor='braintree') - @patch('rowers.fakturoid.requests.get',side_effect=mocked_requests) - @patch('rowers.fakturoid.requests.post',side_effect=mocked_requests) + @patch('rowers.idoklad.idoklad_token', side_effect=mocked_idoklad_token) + @patch('rowers.idoklad.requests.get',side_effect=mocked_requests) + @patch('rowers.idoklad.requests.post',side_effect=mocked_requests) @patch('rowers.braintreestuff.gateway', side_effect=MockBraintreeGateway) @patch('rowers.braintreestuff.myqueue') - def test_process_webhook(self,mock_get,mockpost,mocked_gateway,mocked_myqueue): + def test_process_webhook(self,mock_token, mock_get,mockpost,mocked_gateway,mocked_myqueue): n = notification() res = process_webhook(n) self.assertEqual(res,1) diff --git a/rowers/tests/test_payments.py b/rowers/tests/test_payments.py index 5f1cf614..0ecd7776 100644 --- a/rowers/tests/test_payments.py +++ b/rowers/tests/test_payments.py @@ -405,7 +405,7 @@ description: "" @patch('rowers.views.braintreestuff.gateway', side_effect=MockBraintreeGateway) - @patch('rowers.fakturoid.create_invoice',side_effect=mocked_invoiceid) + @patch('rowers.idoklad.create_invoice',side_effect=mocked_invoiceid) @patch('rowers.utils.myqueue') def test_purchase_trainingplan_view(self, mocked_gateway,mocked_invoiceid, mocked_myqueue): u = UserFactory() diff --git a/rowers/urls.py b/rowers/urls.py index af97a0a1..5a4484da 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -752,6 +752,7 @@ urlpatterns = [ views.rower_prefs_view, name='rower_prefs_view'), re_path(r'^me/prefs/user/(?P\d+)/$', views.rower_simpleprefs_view, name='rower_simpleprefs_view'), + re_path(r'^me/idokladauthorize/$', views.rower_idoklad_authorize, name='rower_idoklad_authorize'), re_path(r'^me/rojaboauthorize/$', views.rower_rojabo_authorize, name='rower_rojabo_authorize'), re_path(r'^me/polarauthorize/$', views.rower_polar_authorize, diff --git a/rowers/views/paymentviews.py b/rowers/views/paymentviews.py index f42b476e..241091c1 100644 --- a/rowers/views/paymentviews.py +++ b/rowers/views/paymentviews.py @@ -8,6 +8,72 @@ from django.core.mail import EmailMessage from rowers import credits +@login_required() +def rower_idoklad_authorize(request): + state=str(uuid4()) + + params = { + "client_id":IDOKLAD_CLIENT_ID, + "response_type": "code", + "redirect_uri": IDOKLAD_REDIRECT_URI, + "scope": "idoklad_api offline_access", + } + + url = "https://identity.idoklad.cz/server/connect/authorize?"+urllib.parse.urlencode(params) + + return HttpResponseRedirect(url) + +@login_required() +def process_idokladcallback(request): + dologging('idoklad.log',' /rowers/idokladcallback/') + + try: + code = request.GET['code'] + except KeyError: + error = request.GET['error'] + messages.error(request,error) + return HttpResponseRedirect(reverse('workouts_view')) + + post_data = { + 'grant_type': "authorization_code", + 'client_id': IDOKLAD_CLIENT_ID, + 'client_secret': IDOKLAD_CLIENT_SECRET, + 'scope': 'idoklad_api offline_access', + 'code': code, + 'redirect_uri': IDOKLAD_REDIRECT_URI, + } + + headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + } + + base_url = 'https://identity.idoklad.cz/server/connect/token' + + response = requests.post(base_url, data=post_data, headers=headers) + + if response.status_code == 200: + result = response.json() + try: + t = iDokladToken.objects.get(id=1) + t.acces_token = result['access_token'], + t.refresh_token = result['refresh_token'] + t.expires_in = result['expires_in'] + t.id_token = result['id_token'] + t.save() + except iDokladToken.DoesNotExist: + t = iDokladToken( + access_token = result['access_token'], + refresh_token = result['refresh_token'], + expires_in = result['expires_in'], + ) + t.save() + messages.info(request,"Token refreshed and stored") + else: + messages.error(request,"Error") + + url = reverse('rower_exportsettings_view') + + return HttpResponseRedirect(url) @csrf_exempt def braintree_webhook_view(request): diff --git a/rowers/views/statements.py b/rowers/views/statements.py index 01b768c5..01771ce6 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -179,7 +179,7 @@ from rowers.models import ( RowerPowerForm, RowerHRZonesForm, SimpleRowerPowerFo IndoorVirtualRaceForm, PlannedSessionCommentForm, Alert, Condition, StaticChartRowerForm, FollowerForm, VirtualRaceAthleteForm, InstantPlanForm, DataRowerForm, - StepEditorForm, ) + StepEditorForm, iDokladToken ) from rowers.models import ( FavoriteForm, BaseFavoriteFormSet, SiteAnnouncement, BasePlannedSessionFormSet, get_course_timezone, BaseConditionFormSet, @@ -226,6 +226,7 @@ from rowsandall_app.settings import ( RECAPTCHA_SITE_KEY, RECAPTCHA_SITE_SECRET, NK_REDIRECT_URI, NK_CLIENT_ID, NK_CLIENT_SECRET, ROJABO_REDIRECT_URI, ROJABO_CLIENT_ID, ROJABO_CLIENT_SECRET, + IDOKLAD_REDIRECT_URI, IDOKLAD_CLIENT_ID, IDOKLAD_CLIENT_SECRET, ) from django.contrib import messages diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py index 5bf05b8b..28f52fca 100644 --- a/rowsandall_app/settings.py +++ b/rowsandall_app/settings.py @@ -97,6 +97,8 @@ AUTHENTICATION_BACKENDS = ( #'rules.permissions.ObjectPermissionBackend', ) +CSRF_TRUSTED_ORIGINS = ['https://rowsandall.com', 'https://www.rowsandall.com', 'http://localhost', 'https://dunav.ngrok.io'] + MIDDLEWARE = [ 'django.middleware.common.CommonMiddleware', 'django.middleware.common.BrokenLinkEmailsMiddleware', @@ -598,6 +600,16 @@ try: except KeyError: # pragma: no cover FAKTUROID_SLUG = '' +try: + IDOKLAD_CLIENT_ID = CFG['idoklad_client_id'] + IDOKLAD_CLIENT_SECRET = CFG['idoklad_client_secret'] + IDOKLAD_REDIRECT_URI = CFG['idoklad_redirect_uri'] +except KeyError: # pragma: no cover + IDOKLAD_CLIENT_ID = '' + IDOKLAD_CLIENT_SECRET = '' + IDOKLAD_REDIRECT_URI = '' + + # ID obfuscation try: OPAQUE_SECRET_KEY = CFG['opaque_secret_key'] diff --git a/rowsandall_app/urls.py b/rowsandall_app/urls.py index 76c518fd..caf20824 100644 --- a/rowsandall_app/urls.py +++ b/rowsandall_app/urls.py @@ -93,6 +93,7 @@ urlpatterns += [ re_path(r'^tp\_callback', rowersviews.rower_process_tpcallback), re_path(r'^rp3\_callback', rowersviews.rower_process_rp3callback), re_path(r'^twitter\_callback', rowersviews.rower_process_twittercallback), + re_path(r'^idoklad\_callback', rowersviews.process_idokladcallback), re_path(r'^i18n/', include('django.conf.urls.i18n')), re_path(r'^tz_detect/', include('tz_detect.urls')), re_path(r'^logo/', logoview),