toulouse-maelis: add endpoint to list schools for a child and level (#72749)
gitea-wip/passerelle/pipeline/pr-main This commit looks good Details

This commit is contained in:
Serghei Mihai 2023-01-05 17:24:11 +01:00
parent 1e401a1c96
commit 842a31761c
3 changed files with 61 additions and 0 deletions

View File

@ -1950,6 +1950,33 @@ class ToulouseMaelis(BaseResource, HTTPResource):
data.append(item)
return {'data': serialize_object(data)}
@endpoint(
display_category='Inscriptions',
description="Liste les écoles pour un enfant et niveau scolaire",
name='read-schools-for-child-and-level',
perm='can_access',
parameters={
'year': {'description': 'Année', 'example_value': '2023'},
'child_id': {'description': 'Identifiant de l\'enfant', 'example_value': '190115'},
'level': {'description': 'Niveau scolaire'},
},
)
def read_schools_for_child_and_level(self, request, child_id, year, level=None):
data = {
'numPerson': child_id,
'schoolYear': year,
}
if level:
data['levelCode'] = level
response = self.call('Family', 'readSchoolForChildAndLevel', **data)
data = []
for item in serialize_object(response):
item['id'] = item['idSchool']
item['text'] = item['schoolName']
data.append(item)
return {'data': serialize_object(data)}
class Link(models.Model):
resource = models.ForeignKey(ToulouseMaelis, on_delete=models.CASCADE)

View File

@ -0,0 +1,21 @@
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:readSchoolForChildAndLevelResponse xmlns:ns2="family.ws.maelis.sigec.com">
<schoolBeanList>
<natureCode>E</natureCode>
<natureLibelle>ELEMENTAIRE</natureLibelle>
<level>Cours préparatoire</level>
<levelCode>CP</levelCode>
<idSchool>2435</idSchool>
<schoolName>DUPONT PIERRE ELEMENTAIRE</schoolName>
<adresse>
<idStreet>2049</idStreet>
<street1>GRANDE-RUE SAINT MICHEL</street1>
<town>TOULOUSE</town>
<zipcode>31400</zipcode>
</adresse>
<headmaster>FOURCADE MARIE-SYLVIE</headmaster>
</schoolBeanList>
</ns2:readSchoolForChildAndLevelResponse>
</soap:Body>
</soap:Envelope>

View File

@ -4310,3 +4310,16 @@ def test_read_school_list_address_and_level(site_service, con, app):
for item in resp.json['data']:
assert 'id' in item
assert 'text' in item
def test_read_school_list_child_and_level(family_service, con, app):
family_service.add_soap_response(
'readSchoolForChildAndLevel', get_xml_file('R_read_school_for_child_and_level.xml')
)
url = get_endpoint('read-schools-for-child-and-level')
resp = app.get(url, params={'child_id': '190115', 'year': '2023'})
assert resp.json['err'] == 0
assert len(resp.json['data']) == 1
for item in resp.json['data']:
assert 'id' in item
assert 'text' in item