Difference between revisions of "Data source/VIES/data model/record/mapping/CDQ/ES/transformation"
Jump to navigation
Jump to search
(Template parameters updated.) |
(Template parameters updated.) |
||
Line 1: | Line 1: | ||
{{Data model transformation | {{Data model transformation | ||
| data source = Data source/VIES | | data source = Data source/VIES | ||
− | | transformation type = | + | | transformation type = CUSTOM_TRANSFORMATION |
| transformation code = import json | | transformation code = import json | ||
Line 9: | Line 9: | ||
result = {} | result = {} | ||
− | add_if_valid(json_object, 'traderStreet', ' | + | if 'response' in json_object: |
− | + | response = json_object.get('response') | |
− | + | add_if_valid_for_rest_response(response, 'traderStreet', 'addresses[0].thoroughfares[0]', 'STREET', result) | |
− | + | add_if_valid_for_rest_response(response, 'traderPostalCode', 'addresses[0].postCodes[0]', 'REGULAR', result) | |
+ | add_if_valid_for_rest_response(response, 'traderCity', 'addresses[0].localities[0]', 'CITY', result) | ||
+ | else: | ||
+ | add_if_valid(json_object, 'traderStreet', 'addresses[0].thoroughfares[0]', 'STREET', result) | ||
+ | add_if_valid(json_object, 'traderPostcode', 'addresses[0].postCodes[0]', 'REGULAR', result) | ||
+ | add_if_valid(json_object, 'traderCity', 'addresses[0].localities[0]', 'CITY', result) | ||
return result | return result | ||
def add_if_valid(json_object, param, prefix, type, result): | def add_if_valid(json_object, param, prefix, type, result): | ||
− | if json_object | + | if json_object.get('countryCode', {}).get('value', {}) != 'ES' or json_object.get(param + 'Match', {}).get('value', {}) == '1': |
− | value = json_object | + | value = json_object.get(param, {}).get('value', {}) |
+ | if value: | ||
+ | result.update({ | ||
+ | prefix + '.type.technicalKey': type, | ||
+ | prefix + '.value': value | ||
+ | }) | ||
+ | |||
+ | |||
+ | def add_if_valid_for_rest_response(json_object, param, prefix, type, result): | ||
+ | if json_object.get(param + 'Match', {}) == 'VALID': | ||
+ | value = json_object.get(param, {}) | ||
if value: | if value: | ||
result.update({ | result.update({ | ||
− | prefix + '.type': type, | + | prefix + '.type.technicalKey': type, |
prefix + '.value': value | prefix + '.value': value | ||
}) | }) | ||
+ | |||
| sources = Data source/VIES/data model/record/mapping/CDQ/ES | | sources = Data source/VIES/data model/record/mapping/CDQ/ES | ||
}} | }} |
Latest revision as of 09:04, 23 April 2025
Part of Hierarchical relation between two concepts of the CDQ Data Model. | Data source VIES |
---|---|
Mapping source The source of a data model mapping. | VIES record ↣ THOROUGHFARE_VALUE , THOROUGHFARE_TYPE , POST_CODE_VALUE , POST_CODE_TYPE , LOCALITY_VALUE , LOCALITY_TYPE
|
Transformation type A type of a transformation applied to a data model mapping. | CUSTOM_TRANSFORMATION"CUSTOM_TRANSFORMATION" is not in the list (UPPER_CASE, LOWER_CASE, CUSTOM) of allowed values for the "Has transformation type" property.
|
Transformation parameter A transformation parameter is an action proccessed by a data model transformation. | n/a |
Description Informal and comprehensive human-readable definition of a concept. | n/a |
Transformation code Any code (in Python, JAVA or other) that will transform values for a given data source attributes.
import json
def transform(raw_data):
json_object = json.loads(raw_data)
result = {}
if 'response' in json_object:
response = json_object.get('response')
add_if_valid_for_rest_response(response, 'traderStreet', 'addresses[0].thoroughfares[0]', 'STREET', result)
add_if_valid_for_rest_response(response, 'traderPostalCode', 'addresses[0].postCodes[0]', 'REGULAR', result)
add_if_valid_for_rest_response(response, 'traderCity', 'addresses[0].localities[0]', 'CITY', result)
else:
add_if_valid(json_object, 'traderStreet', 'addresses[0].thoroughfares[0]', 'STREET', result)
add_if_valid(json_object, 'traderPostcode', 'addresses[0].postCodes[0]', 'REGULAR', result)
add_if_valid(json_object, 'traderCity', 'addresses[0].localities[0]', 'CITY', result)
return result
def add_if_valid(json_object, param, prefix, type, result):
if json_object.get('countryCode', {}).get('value', {}) != 'ES' or json_object.get(param + 'Match', {}).get('value', {}) == '1':
value = json_object.get(param, {}).get('value', {})
if value:
result.update({
prefix + '.type.technicalKey': type,
prefix + '.value': value
})
def add_if_valid_for_rest_response(json_object, param, prefix, type, result):
if json_object.get(param + 'Match', {}) == 'VALID':
value = json_object.get(param, {})
if value:
result.update({
prefix + '.type.technicalKey': type,
prefix + '.value': value
})
def transform(raw_data):
json_object = json.loads(raw_data)
result = {}
if 'response' in json_object:
response = json_object.get('response')
add_if_valid_for_rest_response(response, 'traderStreet', 'addresses[0].thoroughfares[0]', 'STREET', result)
add_if_valid_for_rest_response(response, 'traderPostalCode', 'addresses[0].postCodes[0]', 'REGULAR', result)
add_if_valid_for_rest_response(response, 'traderCity', 'addresses[0].localities[0]', 'CITY', result)
else:
add_if_valid(json_object, 'traderStreet', 'addresses[0].thoroughfares[0]', 'STREET', result)
add_if_valid(json_object, 'traderPostcode', 'addresses[0].postCodes[0]', 'REGULAR', result)
add_if_valid(json_object, 'traderCity', 'addresses[0].localities[0]', 'CITY', result)
return result
def add_if_valid(json_object, param, prefix, type, result):
if json_object.get('countryCode', {}).get('value', {}) != 'ES' or json_object.get(param + 'Match', {}).get('value', {}) == '1':
value = json_object.get(param, {}).get('value', {})
if value:
result.update({
prefix + '.type.technicalKey': type,
prefix + '.value': value
})
def add_if_valid_for_rest_response(json_object, param, prefix, type, result):
if json_object.get(param + 'Match', {}) == 'VALID':
value = json_object.get(param, {})
if value:
result.update({
prefix + '.type.technicalKey': type,
prefix + '.value': value
})