toulouse-maelis: alway call zeep serializer (#74084)
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 d2871f3fa0
commit 5f578fd978
1 changed files with 29 additions and 41 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, err_code='%s-%s-%s' % (wsdl_short_name, service, e.code))
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))
@ -243,9 +243,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
raise APIError('User not linked to family', err_code='not-linked')
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)
@ -544,11 +542,9 @@ 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(
@ -1100,16 +1096,15 @@ 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')
err_codes = [x.split(':')[0][:4] for x in errors]
raise APIError(' ; '.join(errors), err_code=', '.join(err_codes))
if NameID:
Link.objects.create(resource=self, name_id=NameID, family_id=family_id)
return {'data': data}
return {'data': response}
@endpoint(
display_category='Famille',
@ -1133,13 +1128,12 @@ 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:
err_codes = [x.split(':')[0][:4] for x in errors]
raise APIError(' ; '.join(errors), err_code=', '.join(err_codes))
return {'data': data}
return {'data': response}
@endpoint(
display_category='Famille',
@ -1155,10 +1149,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), err_code='already-rl1')
if NameID:
@ -1288,10 +1281,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), err_code='already-child')
return {'data': {'child_id': child_id}}
@ -1723,8 +1715,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'}
@ -1764,9 +1755,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
}
}
response = self.call('Activity', 'getPersonScheduleList', **payload)
result = serialize_object(response)
for result_data in result or []:
for schedule in result_data['activityScheduleList']:
for response_data in response or []:
for schedule in response_data['activityScheduleList']:
activity = schedule['activity']
if not activity['activityType']['natureSpec']:
continue
@ -1926,9 +1916,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
}
}
response = self.call('Activity', 'updatePersonSchedule', **payload)
errors = serialize_object(response)
if errors:
raise APIError(' ; '.join(errors), err_code='agenda-child-error')
if response:
raise APIError(' ; '.join(response), err_code='agenda-child-error')
# sort changes
activity_types = ['ACCMAT', 'RESTSCOL']
@ -2007,8 +1996,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',
@ -2066,11 +2054,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',
@ -2093,11 +2081,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',
@ -2119,7 +2107,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
response = self.call(
'Family', 'getChildSubscribeSchoolInformation', getFamilySubscribeSchoolInfoRequestBean=data
)
return {'data': serialize_object(response)}
return {'data': response}
@endpoint(
display_category='Inscriptions',
@ -2132,7 +2120,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',
@ -2147,7 +2135,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',
@ -2162,7 +2150,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',