toulouse-maelis: ajouter du traitement sur les indicateurs passés à la démarche d'inscription en crèche (#74445) #105
|
@ -3282,6 +3282,23 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
||||||
post={'request_body': {'schema': {'application/json': family_schemas.NURSERY_DEMAND_SCHEMA}}},
|
post={'request_body': {'schema': {'application/json': family_schemas.NURSERY_DEMAND_SCHEMA}}},
|
||||||
)
|
)
|
||||||
def create_nursery_demand(self, request, post_data):
|
def create_nursery_demand(self, request, post_data):
|
||||||
|
apeIndicators = self.get_referential('ApeIndicator')
|
||||||
|
for group in apeIndicators:
|
||||||
|
if group['id'] == 'INDI_APE_ENF':
|
||||||
|
key = 'child_indicators'
|
||||||
|
elif group['id'] == 'INDI_APE_FAM':
|
||||||
|
key = 'family_indicators'
|
||||||
|
else:
|
||||||
|
key = 'demand_indicators'
|
||||||
|
expected_codes = [x['code'] for x in group['indicatorList']]
|
||||||
|
for i, item in enumerate(post_data.get(key) or []):
|
||||||
|
if item['code'] not in expected_codes:
|
||||||
|
raise APIError(
|
||||||
|
"%s/%i/code key value '%s' do not belong to APE '%s' indicators"
|
||||||
|
% (key, i, item['code'], group['id'][-3:])
|
||||||
|
)
|
||||||
|
item['isActive'] = self.encode_bool(item['isActive'])
|
||||||
|
|
||||||
child_data = {}
|
child_data = {}
|
||||||
if post_data.get('child_id'):
|
if post_data.get('child_id'):
|
||||||
child_data['numPerson'] = post_data['child_id']
|
child_data['numPerson'] = post_data['child_id']
|
||||||
|
|
|
@ -7678,7 +7678,20 @@ def test_get_nursery_geojson(con, app):
|
||||||
|
|
||||||
|
|
||||||
def test_create_nursery_demand(ape_service, con, app):
|
def test_create_nursery_demand(ape_service, con, app):
|
||||||
ape_service.add_soap_response('addApeBook', get_xml_file('R_create_nursery_demand.xml'))
|
def request_check(request):
|
||||||
|
assert [(x['code'], x['isActive']) for x in request.child['indiPersList']] == [
|
||||||
|
('APE_ALLO', True),
|
||||||
|
('APE-MINE', False),
|
||||||
|
]
|
||||||
|
assert [(x['code'], x['isActive']) for x in request.apeBook['indiResapeList']] == [
|
||||||
|
('APE_FIRSTC', True),
|
||||||
|
('APE_FRAT', False),
|
||||||
|
]
|
||||||
|
assert [(x['code'], x['isActive']) for x in request['indiFamList']] == [('APE_COMPO1', False)]
|
||||||
|
|
||||||
|
ape_service.add_soap_response(
|
||||||
|
'addApeBook', get_xml_file('R_create_nursery_demand.xml'), request_check=request_check
|
||||||
|
)
|
||||||
data = {
|
data = {
|
||||||
'family_id': '322425',
|
'family_id': '322425',
|
||||||
'accept_other_nurseries': False,
|
'accept_other_nurseries': False,
|
||||||
|
@ -7691,14 +7704,14 @@ def test_create_nursery_demand(ape_service, con, app):
|
||||||
'number_of_days': '1',
|
'number_of_days': '1',
|
||||||
'child_indicators/0/code': 'APE_ALLO',
|
'child_indicators/0/code': 'APE_ALLO',
|
||||||
'child_indicators/0/isActive': True,
|
'child_indicators/0/isActive': True,
|
||||||
'child_indicators/1/code': 'code2',
|
'child_indicators/1/code': 'APE-MINE',
|
||||||
'child_indicators/1/isActive': False,
|
'child_indicators/1/isActive': False,
|
||||||
'demand_indicators/0/code': 'APE_ALLO',
|
'demand_indicators/0/code': 'APE_FIRSTC',
|
||||||
'demand_indicators/0/isActive': True,
|
'demand_indicators/0/isActive': 'Oui',
|
||||||
'demand_indicators/1/code': 'APE_ALLO',
|
'demand_indicators/1/code': 'APE_FRAT',
|
||||||
'demand_indicators/1/isActive': False,
|
'demand_indicators/1/isActive': 0,
|
||||||
'family_indicators/0/code': 'APE_ALLO',
|
'family_indicators/0/code': 'APE_COMPO1',
|
||||||
'family_indicators/0/isActive': False,
|
'family_indicators/0/isActive': 'False',
|
||||||
'start_hour_Mon': '09:00',
|
'start_hour_Mon': '09:00',
|
||||||
'end_hour_Mon': '18:00',
|
'end_hour_Mon': '18:00',
|
||||||
'nursery1/idActivity': 'M10000000004',
|
'nursery1/idActivity': 'M10000000004',
|
||||||
|
@ -7713,3 +7726,20 @@ def test_create_nursery_demand(ape_service, con, app):
|
||||||
data['start_hour_Tue'] = ''
|
data['start_hour_Tue'] = ''
|
||||||
resp = app.post_json(url, params=data)
|
resp = app.post_json(url, params=data)
|
||||||
assert resp.json['err'] == 0
|
assert resp.json['err'] == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_create_nursery_demand_wrong_referential_key_error(con, app):
|
||||||
|
url = get_endpoint('create-nursery-demand')
|
||||||
|
params = {
|
||||||
|
'family_id': '322425',
|
||||||
|
'start_date': '2023-04-01',
|
||||||
|
'family_indicators/0/code': 'APE_ALLO',
|
||||||
|
'family_indicators/0/isActive': 'False',
|
||||||
|
}
|
||||||
|
|
||||||
|
resp = app.post_json(url, params=params)
|
||||||
|
assert resp.json['err'] == 1
|
||||||
|
assert (
|
||||||
|
resp.json['err_desc']
|
||||||
|
== "family_indicators/0/code key value 'APE_ALLO' do not belong to APE 'FAM' indicators"
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in New Issue