toulouse-maelis: add endpoint to list schools for a child and level (#72749)
gitea-wip/passerelle/pipeline/pr-main This commit looks good
Details
gitea-wip/passerelle/pipeline/pr-main This commit looks good
Details
This commit is contained in:
parent
1e401a1c96
commit
842a31761c
|
@ -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)
|
||||
|
|
|
@ -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>
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue