toulouse-maelis: alway call zeep serializer (#74128)
gitea-wip/passerelle/pipeline/pr-main This commit looks good Details
gitea/passerelle/pipeline/head Something is wrong with the build of this commit Details

This commit is contained in:
Nicolas Roche 2023-02-01 20:13:51 +01:00 committed by Gitea
parent 613e5ad205
commit 4dd3fb1311
1 changed files with 38 additions and 55 deletions

View File

@ -76,9 +76,10 @@ class ToulouseMaelis(BaseResource, HTTPResource):
client = self.get_client(wsdl_short_name)
method = getattr(client.service, service)
try:
return method(**kwargs)
response = method(**kwargs)
except zeep.exceptions.Fault as e:
raise APIError(e.message)
return serialize_object(response)
def check_status(self):
assert self.call('Family', 'isWSRunning')
@ -109,8 +110,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
def get_referential_data(self, service_name, referential_name):
try:
response = self.call(service_name, 'read' + referential_name + 'List')
return serialize_object(response)
return self.call(service_name, 'read' + referential_name + 'List')
except Exception as e:
raise UpdateError('Service indisponible : %s' % str(e))
@ -185,17 +185,17 @@ class ToulouseMaelis(BaseResource, HTTPResource):
{
'id': str(year),
'text': '%s-%s' % (year, year + 1),
'data': serialize_object(response),
'data': response,
}
)
self.update_referential('ActivityCatalog', data, 'id', 'text')
def update_ape_referentials(self):
indicators = self.call('Ape', 'readApeIndicatorList')
self.update_referential('ApeIndicator', serialize_object(indicators), 'level', 'level')
self.update_referential('ApeIndicator', indicators, 'level', 'level')
nurseries = self.call('Ape', 'readNurseryList', request={})
self.update_referential('Nursery', serialize_object(nurseries), 'idActivity', 'libelle')
self.update_referential('Nursery', nurseries, 'idActivity', 'libelle')
def daily(self):
try:
@ -244,9 +244,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
raise APIError('User not linked to family')
def get_family_raw(self, family_id, **kwargs):
response = self.call('Family', 'readFamily', dossierNumber=family_id, **kwargs)
data = serialize_object(response)
return data
return self.call('Family', 'readFamily', dossierNumber=family_id, **kwargs)
def get_rl_raw(self, family_id, rl_id, **kwargs):
data = self.get_family_raw(family_id, **kwargs)
@ -540,22 +538,18 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'dateStartActivity': start_date,
'dateEndActivity': end_date,
}
response = self.call(
return self.call(
'Activity', 'getPersonCatalogueActivity', getPersonCatalogueActivityRequestBean=params
)
data = serialize_object(response)
return data
def get_basket_raw(self, family_id):
response = self.call(
return self.call(
'Activity',
'getFamilyBasket',
getFamilyBasketRequestBean={
'numFamily': family_id,
},
)
data = serialize_object(response)
return data
@endpoint(
display_category='Famille',
@ -1096,15 +1090,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
self.assert_family_payload_in_referential(post_data)
response = self.call('Family', 'createFamily', **post_data)
data = serialize_object(response)
family_id = data.get('number')
family_id = response.get('number')
if not family_id:
errors = data.get('rl1ErrorList') + data.get('childErrorList')
errors = response.get('rl1ErrorList') + response.get('childErrorList')
raise APIError(' ; '.join(errors))
if NameID:
Link.objects.create(resource=self, name_id=NameID, family_id=family_id)
return {'data': data}
return {'data': response}
@endpoint(
display_category='Famille',
@ -1128,12 +1121,11 @@ class ToulouseMaelis(BaseResource, HTTPResource):
post_data['emergencyPersonList'] = [{'personList': persons}]
response = self.call('Family', 'updateFamily', dossierNumber=family_id, **post_data)
data = serialize_object(response)
family_id = data.get('number')
errors = data.get('childErrorList')
family_id = response.get('number')
errors = response.get('childErrorList')
if errors:
raise APIError(' ; '.join(errors))
return {'data': data}
return {'data': response}
@endpoint(
display_category='Famille',
@ -1149,10 +1141,9 @@ class ToulouseMaelis(BaseResource, HTTPResource):
self.assert_create_rl1_payload_in_referential(post_data)
response = self.call('Family', 'createFamily', **post_data)
data = serialize_object(response)
family_id = data.get('number')
family_id = response.get('number')
if not family_id:
errors = data.get('rl1ErrorList') or []
errors = response.get('rl1ErrorList') or []
raise APIError(' ; '.join(errors))
if NameID:
@ -1282,10 +1273,9 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'child': post_data,
}
response = self.call('Family', 'createChild', **payload)
data = serialize_object(response)
child_id = data.get('number')
child_id = response.get('number')
if not child_id:
errors = data.get('childErrorList') or []
errors = response.get('childErrorList') or []
raise APIError(' ; '.join(errors))
return {'data': {'child_id': child_id}}
@ -1709,8 +1699,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
payload = {'addSuppliedDocumentRequestBean': post_data}
payload['addSuppliedDocumentRequestBean']['numDossier'] = family_id
response = self.call('Family', 'addSuppliedDocument', **payload)
data = serialize_object(response)
if data != 'OK':
if response != 'OK':
raise APIError('maelis fails to add the supplied document')
return {'data': 'ok'}
@ -1745,8 +1734,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
}
}
response = self.call('Activity', 'getPersonScheduleList', **payload)
result = serialize_object(response)
for result_data in result or []:
for result_data in response or []:
for schedule in result_data['activityScheduleList']:
activity = schedule['activity']
if not activity['activityType']['natureSpec']:
@ -1907,9 +1895,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
}
}
response = self.call('Activity', 'updatePersonSchedule', **payload)
errors = serialize_object(response)
if errors:
raise APIError(' ; '.join(errors))
if response:
raise APIError(' ; '.join(response))
# sort changes
activity_types = ['ACCMAT', 'RESTSCOL']
@ -1988,8 +1975,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'dateRef': dateRef,
}
response = self.call('Invoice', 'getDirectDebitOrder', **payload)
data = serialize_object(response)
return {'data': data}
return {'data': response}
@endpoint(
display_category='Inscriptions',
@ -2047,11 +2033,11 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'Site', 'readSchoolForAdressAndLevel', readSchoolForAdressAndLevelRequestBean=data
)
data = []
for item in serialize_object(response):
for item in response:
item['id'] = item['idSchool']
item['text'] = item['schoolName']
data.append(item)
return {'data': serialize_object(data)}
return {'data': data}
@endpoint(
display_category='Inscriptions',
@ -2074,11 +2060,11 @@ class ToulouseMaelis(BaseResource, HTTPResource):
response = self.call('Family', 'readSchoolForChildAndLevel', **data)
data = []
for item in serialize_object(response):
for item in response:
item['id'] = item['idSchool']
item['text'] = item['schoolName']
data.append(item)
return {'data': serialize_object(data)}
return {'data': data}
@endpoint(
display_category='Inscriptions',
@ -2100,15 +2086,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
response = self.call(
'Family', 'getChildSubscribeSchoolInformation', getFamilySubscribeSchoolInfoRequestBean=data
)
data = serialize_object(response)
if data['childSubscribeSchoolInformation'].get('subscribeSchoolInformation'):
schools = data['childSubscribeSchoolInformation']['subscribeSchoolInformation'].get(
if response['childSubscribeSchoolInformation'].get('subscribeSchoolInformation'):
schools = response['childSubscribeSchoolInformation']['subscribeSchoolInformation'].get(
'derogSchoolList'
)
for item in schools or []:
item['id'] = item['idSchool']
item['text'] = item['schoolName']
return {'data': data}
return {'data': response}
@endpoint(
display_category='Inscriptions',
@ -2121,7 +2106,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
)
def create_child_school_pre_registration(self, request, post_data):
response = self.call('Family', 'preSubscribeSchoolPerim', **post_data)
return {'data': serialize_object(response)}
return {'data': response}
@endpoint(
display_category='Inscriptions',
@ -2136,7 +2121,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
)
def create_child_school_pre_registration_with_exemption(self, request, post_data):
response = self.call('Family', 'presubscribeSchoolDerog', **post_data)
return {'data': serialize_object(response)}
return {'data': response}
@endpoint(
display_category='Inscriptions',
@ -2151,7 +2136,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
)
def create_child_school_pre_registration_with_sibling(self, request, post_data):
response = self.call('Family', 'presubscribeSchoolSibling', **post_data)
return {'data': serialize_object(response)}
return {'data': response}
@endpoint(
display_category='Inscriptions',
@ -2600,9 +2585,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
},
'dateRef': ref_date,
}
response = self.call('Activity', 'getPersonUnitInfo', getPersonUnitInfoRequestBean=params)
data = serialize_object(response)
return {'data': data}
return {'data': self.call('Activity', 'getPersonUnitInfo', getPersonUnitInfoRequestBean=params)}
@endpoint(
display_category='Inscriptions',
@ -2640,7 +2623,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
response = self.call('Activity', 'addPersonUnitBasket', **payload)
if not response['controlResult']['controlOK']:
raise APIError(response['controlResult']['message'])
return {'data': serialize_object(response)}
return {'data': response}
@endpoint(
display_category='Inscriptions',
@ -2706,7 +2689,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'idBasketLine': line_id,
},
)
return {'data': serialize_object(response)}
return {'data': response}
@endpoint(
display_category='Inscriptions',
@ -2759,7 +2742,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'idBasket': basket['id'],
},
)
return {'data': serialize_object(response)}
return {'data': response}
@endpoint(
display_category='Inscriptions',