toulouse-maelis: add family_id parameter to endpoints (#73334)

This commit is contained in:
Nicolas Roche 2023-01-12 18:45:42 +01:00 committed by Gitea
parent adb08a9ef8
commit 5e99708996
2 changed files with 259 additions and 101 deletions

View File

@ -791,11 +791,12 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='read-family',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
'income_year': {'description': 'Année de revenu pour filtrer les quotients'},
},
)
def read_family(self, request, NameID, income_year=None):
family_id = self.get_link(NameID).family_id
def read_family(self, request, NameID=None, family_id=None, income_year=None):
family_id = family_id or self.get_link(NameID).family_id
data = self.get_family(family_id, incomeYear=income_year)
data['family_id'] = family_id
return {'data': data}
@ -807,6 +808,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='read-rl-list',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
'text_template': {
'description': 'template utilisée pour la valeur text',
'example_value': '{{ lastname }} {{ firstname }}',
@ -814,8 +816,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'income_year': {'description': 'Année de revenu pour filtrer les quotients'},
},
)
def read_rl_list(self, request, NameID, text_template=None, income_year=None):
family_id = self.get_link(NameID).family_id
def read_rl_list(self, request, NameID=None, family_id=None, text_template=None, income_year=None):
family_id = family_id or self.get_link(NameID).family_id
result = self.get_family_raw(family_id, incomeYear=income_year)
if not text_template:
text_template = '{{ lastname }} {{ firstname }}'
@ -839,14 +841,15 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='read-person-list',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
'text_template': {
'description': 'template utilisée pour la valeur text',
'example_value': '{{ lastname }} {{ firstname }}',
},
},
)
def read_person_list(self, request, NameID, text_template=None):
family_id = self.get_link(NameID).family_id
def read_person_list(self, request, NameID=None, family_id=None, text_template=None):
family_id = family_id or self.get_link(NameID).family_id
result = self.get_family_raw(family_id)
if not text_template:
text_template = '{{ lastname }} {{ firstname }}'
@ -867,14 +870,15 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='read-child-list',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
'text_template': {
'description': 'template utilisée pour la valeur text',
'example_value': '{{ lastname }} {{ firstname }}',
},
},
)
def read_child_list(self, request, NameID, text_template=None):
family_id = self.get_link(NameID).family_id
def read_child_list(self, request, NameID=None, family_id=None, text_template=None):
family_id = family_id or self.get_link(NameID).family_id
result = self.get_family_raw(family_id)
if not text_template:
text_template = '{{ lastname }} {{ firstname }}'
@ -894,16 +898,17 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
name='read-child-person-list',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
'text_template': {
'description': 'template utilisée pour la valeur text',
'example_value': '{{ personInfo.lastname }} {{ personInfo.firstname }}',
},
},
)
def read_child_person_list(self, request, NameID, child_id, text_template=None):
family_id = self.get_link(NameID).family_id
def read_child_person_list(self, request, child_id, NameID=None, family_id=None, text_template=None):
family_id = family_id or self.get_link(NameID).family_id
result = self.get_child_raw(family_id, child_id)
if not text_template:
text_template = '{{ personInfo.lastname }} {{ personInfo.firstname }}'
@ -923,13 +928,21 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
name='read-rl',
parameters={
'NameID': {'description': 'Publik NameID'},
'rl_id': {'description': 'Numéro du représentant légal'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
'income_year': {'description': 'Année de revenu pour filtrer les quotients'},
},
)
def read_rl(self, request, NameID, rl_id, income_year=None):
family_id = self.get_link(NameID).family_id
def read_rl(
self,
request,
rl_id,
NameID=None,
family_id=None,
income_year=None,
):
family_id = family_id or self.get_link(NameID).family_id
data = self.get_rl(family_id, rl_id, incomeYear=income_year)
data['family_id'] = family_id
return {'data': data}
@ -940,12 +953,13 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
name='read-person',
parameters={
'NameID': {'description': 'Publik NameID'},
'person_id': {'description': 'Numéro de la personne'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
)
def read_person(self, request, NameID, person_id):
family_id = self.get_link(NameID).family_id
def read_person(self, request, person_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
data = self.get_person(family_id, person_id)
data['family_id'] = family_id
return {'data': data}
@ -956,12 +970,13 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
name='read-child',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
)
def read_child(self, request, NameID, child_id):
family_id = self.get_link(NameID).family_id
def read_child(self, request, child_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
data = self.get_child(family_id, child_id)
data['family_id'] = family_id
return {'data': data}
@ -972,13 +987,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
name='read-child-person',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'person_id': {'description': 'Numéro de la personne'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
)
def read_child_person(self, request, NameID, child_id, person_id):
family_id = self.get_link(NameID).family_id
def read_child_person(self, request, child_id, person_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
data = self.get_child_person(family_id, child_id, person_id)
data['family_id'] = family_id
return {'data': data}
@ -1013,7 +1029,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
parameters={'NameID': {'description': 'Publik NameID'}},
post={'request_body': {'schema': {'application/json': family_schemas.CREATE_FAMILY_SCHEMA}}},
)
def create_family(self, request, NameID, post_data):
def create_family(self, request, post_data, NameID=None):
if self.link_set.filter(name_id=NameID).exists():
raise APIError('User already linked to family', err_code='already-linked')
self.assert_family_payload_in_referential(post_data)
@ -1026,7 +1042,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
err_codes = [x.split(':')[0][:4] for x in errors]
raise APIError(' ; '.join(errors), err_code=', '.join(err_codes))
Link.objects.create(resource=self, name_id=NameID, family_id=family_id)
if NameID:
Link.objects.create(resource=self, name_id=NameID, family_id=family_id)
return {'data': data}
@endpoint(
@ -1034,11 +1051,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
description='Modification de la famille',
name='update-family',
perm='can_access',
parameters={'NameID': {'description': 'Publik NameID'}},
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.UPDATE_FAMILY_SCHEMA}}},
)
def update_family(self, request, NameID, post_data):
family_id = self.get_link(NameID).family_id
def update_family(self, request, post_data, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_family_payload_in_referential(post_data)
self.replace_null_values(post_data)
@ -1064,7 +1084,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
parameters={'NameID': {'description': 'Publik NameID'}},
post={'request_body': {'schema': {'application/json': family_schemas.CREATE_RL1_SCHEMA}}},
)
def create_rl1(self, request, NameID, post_data):
def create_rl1(self, request, post_data, NameID=None):
if self.link_set.filter(name_id=NameID).exists():
raise APIError('User already linked to family', err_code='already-linked')
self.assert_create_rl1_payload_in_referential(post_data)
@ -1076,7 +1096,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
errors = data.get('rl1ErrorList') or []
raise APIError(' ; '.join(errors), err_code='already-rl1')
Link.objects.create(resource=self, name_id=NameID, family_id=family_id)
if NameID:
Link.objects.create(resource=self, name_id=NameID, family_id=family_id)
return {'data': {'family_id': family_id}}
@endpoint(
@ -1084,11 +1105,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
description='Modification du RL1',
name='update-rl1',
perm='can_access',
parameters={'NameID': {'description': 'Publik NameID'}},
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.UPDATE_RL1_SCHEMA}}},
)
def update_rl1(self, request, NameID, post_data):
family_id = self.get_link(NameID).family_id
def update_rl1(self, request, post_data, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_rl_payload_in_referential(post_data)
self.replace_null_values(post_data)
family = self.get_family_raw(family_id)
@ -1113,11 +1137,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
description='Création du RL2',
name='create-rl2',
perm='can_access',
parameters={'NameID': {'description': 'Publik NameID'}},
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.CREATE_RL2_SCHEMA}}},
)
def create_rl2(self, request, NameID, post_data):
family_id = self.get_link(NameID).family_id
def create_rl2(self, request, post_data, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_rl_payload_in_referential(post_data)
family = self.get_family_raw(family_id)
if family['RL2']:
@ -1141,11 +1168,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
description='Modification du RL2',
name='update-rl2',
perm='can_access',
parameters={'NameID': {'description': 'Publik NameID'}},
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.UPDATE_RL2_SCHEMA}}},
)
def update_rl2(self, request, NameID, post_data):
family_id = self.get_link(NameID).family_id
def update_rl2(self, request, post_data, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_rl_payload_in_referential(post_data)
self.replace_null_values(post_data)
family = self.get_family_raw(family_id)
@ -1174,6 +1204,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
'force': {
'description': 'boolean to bypass doublon error',
'type': 'bool',
@ -1182,8 +1213,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
},
post={'request_body': {'schema': {'application/json': family_schemas.CREATE_CHILD_SCHEMA}}},
)
def create_child(self, request, NameID, post_data, force=False):
family_id = self.get_link(NameID).family_id
def create_child(self, request, post_data, NameID=None, family_id=None, force=False):
family_id = family_id or self.get_link(NameID).family_id
self.assert_child_payload_in_referential(post_data)
payload = {
@ -1205,13 +1236,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-child',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.UPDATE_CHILD_SCHEMA}}},
)
def update_child(self, request, NameID, child_id, post_data):
family_id = self.get_link(NameID).family_id
def update_child(self, request, post_data, child_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_child_payload_in_referential(post_data)
self.replace_null_values(post_data)
family = self.get_family_raw(family_id)
@ -1243,13 +1275,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-coordinate',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'rl_id': {'description': 'Numéro du représentant légal'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.UPDATE_COORDINATE_SCHEMA}}},
)
def update_coordinate(self, request, NameID, rl_id, post_data):
family_id = self.get_link(NameID).family_id
def update_coordinate(self, request, post_data, rl_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_update_coordinate_payload_in_referential(post_data)
self.replace_null_values(post_data)
@ -1262,13 +1295,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-rl-indicator',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'rl_id': {'description': 'Numéro du représentant légal'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.UPDATE_INDICATOR_SCHEMA}}},
)
def update_rl_indicator(self, request, NameID, rl_id, post_data):
self.get_link(NameID)
def update_rl_indicator(self, request, post_data, rl_id, NameID=None, family_id=None):
assert family_id or self.get_link(NameID)
self.assert_update_indicator_payload_in_referential('RLIndicator', post_data)
self.call('Family', 'updatePersonIndicatorList', numPerson=rl_id, **post_data)
@ -1280,13 +1314,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-quotient',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'rl_id': {'description': "Numéro du responsable légal"},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.UPDATE_QUOTIENT_SCHEMA}}},
)
def update_quotient(self, request, NameID, rl_id, post_data):
family_id = self.get_link(NameID).family_id
def update_quotient(self, request, post_data, rl_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_post_data_in_referential('Quotient', post_data, ['cdquo'])
payload = {
@ -1304,11 +1339,12 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.EMERGENCY_PERSON_SCHEMA}}},
)
def create_person(self, request, NameID, post_data):
family_id = self.get_link(NameID).family_id
def create_person(self, request, post_data, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_person_payload_in_referential(post_data)
family = self.get_family_raw(family_id)
@ -1333,13 +1369,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-person',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'person_id': {'description': 'Numéro de la personne'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.EMERGENCY_PERSON_SCHEMA}}},
)
def update_person(self, request, NameID, person_id, post_data):
family_id = self.get_link(NameID).family_id
def update_person(self, request, post_data, person_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_person_payload_in_referential(post_data)
family = self.get_family_raw(family_id)
@ -1372,13 +1409,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='delete-person',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'person_id': {'description': 'Numéro de la personne'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
methods=['post'],
)
def delete_person(self, request, NameID, person_id):
family_id = self.get_link(NameID).family_id
def delete_person(self, request, person_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
family = self.get_family_raw(family_id)
personList = family['emergencyPersonList']
@ -1409,13 +1447,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='create-child-person',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.AUTHORIZED_PERSON_SCHEMA}}},
)
def create_child_person(self, request, NameID, child_id, post_data):
family_id = self.get_link(NameID).family_id
def create_child_person(self, request, post_data, child_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_child_person_payload_in_referential(post_data)
child = self.get_child_raw(family_id, child_id)
@ -1437,14 +1476,15 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-child-person',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'person_id': {'description': 'Numéro de la personne'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.AUTHORIZED_PERSON_SCHEMA}}},
)
def update_child_person(self, request, NameID, child_id, person_id, post_data):
family_id = self.get_link(NameID).family_id
def update_child_person(self, request, post_data, child_id, person_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
self.assert_child_person_payload_in_referential(post_data)
child = self.get_child_raw(family_id, child_id)
@ -1474,14 +1514,15 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='delete-child-person',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'person_id': {'description': 'Numéro de la personne'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
methods=['post'],
)
def delete_child_person(self, request, NameID, child_id, person_id):
family_id = self.get_link(NameID).family_id
def delete_child_person(self, request, child_id, person_id, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
child = self.get_child_raw(family_id, child_id)
personList = child['authorizedPersonList']
@ -1509,14 +1550,15 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-child-dietcode',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'dietcode': {'description': 'code du régime alimentaire'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
methods=['post'],
)
def update_child_dietcode(self, request, NameID, child_id, dietcode):
self.get_link(NameID)
def update_child_dietcode(self, request, child_id, dietcode, NameID=None, family_id=None):
assert family_id or self.get_link(NameID)
self.assert_key_in_referential('DietCode', dietcode, 'dietcode parameter', required=False)
self.call('Family', 'createOrUpdateChildDiet', personNumber=child_id, code=dietcode)
@ -1528,13 +1570,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-child-pai',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.PAIINFO_SCHEMA}}},
)
def update_child_pai(self, request, NameID, child_id, post_data):
self.get_link(NameID)
def update_child_pai(self, request, post_data, child_id, NameID=None, family_id=None):
assert family_id or self.get_link(NameID)
self.assert_child_pai_payoad_in_referential(post_data)
# use None to empty date passed as an empty string by date filter
@ -1551,13 +1594,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-child-medical-record',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.MEDICALRECORD_SCHEMA}}},
)
def update_child_medical_record(self, request, NameID, child_id, post_data):
self.get_link(NameID)
def update_child_medical_record(self, request, post_data, child_id, NameID=None, family_id=None):
assert family_id or self.get_link(NameID)
self.assert_child_medical_record_payload_in_referential(post_data)
self.replace_null_values(post_data)
@ -1574,13 +1618,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='update-child-indicator',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.UPDATE_INDICATOR_SCHEMA}}},
)
def update_child_indicator(self, request, NameID, child_id, post_data):
self.get_link(NameID)
def update_child_indicator(self, request, post_data, child_id, NameID=None, family_id=None):
assert family_id or self.get_link(NameID)
self.assert_update_indicator_payload_in_referential('ChildIndicator', post_data)
self.call('Family', 'updatePersonIndicatorList', numPerson=child_id, **post_data)
@ -1593,11 +1638,12 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={'request_body': {'schema': {'application/json': family_schemas.SUPPLIED_DOCUMENTS_SCHEMA}}},
)
def add_supplied_document(self, request, NameID, post_data):
family_id = self.get_link(NameID).family_id
def add_supplied_document(self, request, post_data, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
for i in range(0, len(post_data.get('documentList', []))):
self.assert_post_data_in_referential('Document', post_data, ['documentList', i, 'code'])
@ -1710,14 +1756,15 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='read-child-agenda',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': "Numéro de l'enfant"},
'start_date': {'description': 'Début de la période'},
'end_date': {'description': 'Fin de la période'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
)
def read_child_agenda(self, request, NameID, child_id, start_date, end_date):
family_id = self.get_link(NameID).family_id
def read_child_agenda(self, request, child_id, start_date, end_date, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
start_date, end_date, reference_year = self.get_start_and_end_dates(start_date, end_date)
bookings = self.get_bookings(family_id, child_id, start_date, end_date)
return {
@ -1736,6 +1783,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={
'request_body': {
@ -1745,8 +1793,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
}
},
)
def update_child_agenda(self, request, NameID, post_data):
family_id = self.get_link(NameID).family_id
def update_child_agenda(self, request, post_data, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
child_id = post_data['child_id']
start_date, end_date, dummy = self.get_start_and_end_dates(
post_data['start_date'], post_data['end_date']
@ -1849,13 +1897,16 @@ class ToulouseMaelis(BaseResource, HTTPResource):
description="Ajout d'autorisation de prélèvement",
name='add-rl1-direct-debit-order',
perm='can_access',
parameters={'NameID': {'description': 'Publik NameID'}},
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
post={
'request_body': {'schema': {'application/json': invoice_schemas.ADD_DIRECT_DEBIT_ORDER_SCHEMA}}
},
)
def add_rl1_direct_debit_order(self, request, NameID, post_data):
family_id = self.get_link(NameID).family_id
def add_rl1_direct_debit_order(self, request, post_data, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
family = self.get_family_raw(family_id)
post_data['numPerson'] = family['RL1']['num']
@ -1868,16 +1919,17 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='get-rl1-direct-debit-order',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'codeRegie': {'description': 'Code de la régie'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
'dateRef': {
'description': 'Date de référence',
'type': 'date',
},
},
)
def get_rl1_direct_debit_order(self, request, NameID, codeRegie, dateRef):
family_id = self.get_link(NameID).family_id
def get_rl1_direct_debit_order(self, request, codeRegie, dateRef, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
family = self.get_family_raw(family_id)
payload = {
@ -1985,14 +2037,15 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='read-child-school-informations',
perm='can_access',
parameters={
'NameID': {'description': 'Publik NameID'},
'child_id': {'description': 'Identifiant de l\'enfant', 'example_value': '190115'},
'level': {'description': 'Niveau scolaire', 'example_value': 'CP'},
'year': {'description': 'Année scolaire', 'example_value': '2023'},
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
)
def read_child_school_informations(self, request, NameID, child_id, level, year):
family_id = self.get_link(NameID).family_id
def read_child_school_informations(self, request, child_id, level, year, NameID=None, family_id=None):
family_id = family_id or self.get_link(NameID).family_id
data = {'numDossier': family_id, 'numPerson': child_id, 'schoolYear': year, 'level': level}
response = self.call(

View File

@ -858,6 +858,9 @@ def test_read_child_person_list_not_exists_error(family_service, con, app):
def test_read_family(family_service, xml, con, app):
family_service.add_soap_response('readFamily', get_xml_file(xml))
url = get_endpoint('read-family')
resp = app.get(url + '?family_id=1312')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local')
@ -1151,6 +1154,9 @@ def test_read_family_not_linked_error(con, app):
def test_read_rl1(family_service, con, app):
family_service.add_soap_response('readFamily', get_xml_file('R_read_family.xml'))
url = get_endpoint('read-rl')
resp = app.get(url + '?family_id=1312&rl_id=613878')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local&rl_id=613878')
@ -1161,6 +1167,9 @@ def test_read_rl1(family_service, con, app):
def test_read_rl1_with_income_year(family_service, con, app):
family_service.add_soap_response('readFamily', get_xml_file('R_read_family_with_income_year.xml'))
url = get_endpoint('read-rl')
resp = app.get(url + '?family_id=1312&rl_id=613878&income_year=2020')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local&rl_id=613878&income_year=2020')
@ -1181,6 +1190,9 @@ def test_read_rl1_with_income_year(family_service, con, app):
def test_read_rl2(family_service, con, app):
family_service.add_soap_response('readFamily', get_xml_file('R_read_family.xml'))
url = get_endpoint('read-rl')
resp = app.get(url + '?family_id=1312&rl_id=613879')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local&rl_id=613879')
@ -1293,6 +1305,9 @@ def test_read_rl_not_found(family_service, con, app):
def test_read_person(family_service, con, app):
family_service.add_soap_response('readFamily', get_xml_file('R_read_family.xml'))
url = get_endpoint('read-person')
resp = app.get(url + '?family_id=1312&person_id=614059')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local&person_id=614059')
@ -1321,6 +1336,9 @@ def test_read_person_not_found(family_service, con, app):
def test_read_child(family_service, con, app):
family_service.add_soap_response('readFamily', get_xml_file('R_read_family.xml'))
url = get_endpoint('read-child')
resp = app.get(url + '?family_id=1312&child_id=613880')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local&child_id=613880')
@ -1349,6 +1367,9 @@ def test_read_child_not_found(family_service, con, app):
def test_read_child_person(family_service, con, app):
family_service.add_soap_response('readFamily', get_xml_file('R_read_family.xml'))
url = get_endpoint('read-child-person')
resp = app.get(url + '?family_id=1312&child_id=613880&person_id=614719')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local&child_id=613880&person_id=614719')
@ -1478,6 +1499,10 @@ def test_create_family(family_service, con, app):
'childList/0/insurance/contractEnd': '2022-12-31',
}
resp = app.post_json(url, params=params)
assert resp.json['err'] == 0
assert not Link.objects.exists()
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == {
@ -1642,7 +1667,10 @@ def test_update_family(family_service, con, app):
'childList/1/sexe': 'F',
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data']['number'] == 196544
@ -1774,6 +1802,10 @@ def test_create_rl1(family_service, con, app):
'rl1/adresse/zipcode': '75014',
}
resp = app.post_json(url, params=params)
assert resp.json['err'] == 0
assert not Link.objects.exists()
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == {'family_id': 196545}
@ -1884,7 +1916,10 @@ def test_update_rl1(family_service, con, app):
'birth/dateBirth': '1943-06-15',
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
@ -1960,7 +1995,10 @@ def test_create_rl2(family_service, con, app):
'adresse/zipcode': '75014',
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == {'id': '614062'}
@ -2071,7 +2109,10 @@ def test_update_rl2(family_service, con, app):
'birth/dateBirth': '1940-06-22',
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
@ -2162,7 +2203,10 @@ def test_create_child(family_service, con, app):
'insurance/contractEnd': '2022-12-31',
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == {'child_id': 613880}
@ -2273,7 +2317,10 @@ def test_update_child(family_service, con, app):
'insurance/contractEnd': '2022-12-31',
}
resp = app.post_json(url + '?family_id=1312&child_id=613880', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&child_id=613880', params=params)
assert resp.json['err'] == 0
@ -2364,7 +2411,10 @@ def test_update_coordinate(family_service, con, app):
'CAFInfo/organ': 'A10007752822',
}
resp = app.post_json(url + '?family_id=1312&rl_id=613878', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&rl_id=613878', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -2421,7 +2471,10 @@ def test_update_quotient(family_service, con, app):
'cdquo': 'QS',
}
resp = app.post_json(url + '?family_id=1312&rl_id=613878', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&rl_id=613878', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -2504,7 +2557,10 @@ def test_create_person(family_service, con, app):
'contact/mail': None,
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
@ -2609,7 +2665,10 @@ def test_update_person(family_service, con, app):
'contact/mail': None,
}
resp = app.post_json(url + '?family_id=1312&person_id=614059', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&person_id=614059', params=params)
assert resp.json['err'] == 0
@ -2664,7 +2723,10 @@ def test_delete_person(family_service, con, app):
)
url = get_endpoint('delete-person')
resp = app.post_json(url + '?family_id=1312&person_id=614059')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&person_id=614059')
assert resp.json['err'] == 0
@ -2716,7 +2778,10 @@ def test_create_child_person(family_service, con, app):
'personQuality/code': 'TUTEUR',
}
resp = app.post_json(url + '?family_id=1312&child_id=613880', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&child_id=613880', params=params)
assert resp.json['err'] == 0
@ -2827,7 +2892,10 @@ def test_update_child_person(family_service, con, app):
'personQuality/code': 'O',
}
resp = app.post_json(url + '?family_id=1312&child_id=613880&person_id=614719', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&child_id=613880&person_id=614719', params=params)
assert resp.json['err'] == 0
@ -2924,7 +2992,10 @@ def test_delete_child_person(family_service, con, app):
)
url = get_endpoint('delete-child-person')
resp = app.post_json(url + '?family_id=1312&child_id=613880&person_id=614719')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&child_id=613880&person_id=614719')
assert resp.json['err'] == 0
@ -2961,7 +3032,10 @@ def test_update_child_dietcode(family_service, con, app):
family_service.add_soap_response('createOrUpdateChildDiet', get_xml_file('R_update_child_dietcode.xml'))
url = get_endpoint('update-child-dietcode')
resp = app.post_json(url + '?family_id=1312&child_id=613878&dietcode=RSV')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&child_id=613878&dietcode=RSV')
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -2996,7 +3070,10 @@ def test_update_child_pai(family_service, con, app):
'description': 'some text',
}
resp = app.post_json(url + '?family_id=1312&child_id=613878', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&child_id=613878', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -3096,7 +3173,10 @@ def test_update_child_medical_record(family_service, con, app):
'vaccinList/1/vaccinationDate': '2022-02-22',
}
resp = app.post_json(url + '?family_id=1312&child_id=613878', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&child_id=613878', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -3201,7 +3281,10 @@ def test_update_rl_indicator(family_service, con, app):
'indicatorList/3/isActive': 'False',
}
resp = app.post_json(url + '?family_id=1312&rl_id=613878', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&rl_id=613878', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -3325,7 +3408,10 @@ def test_update_child_indicator(family_service, con, app):
'indicatorList/7/isActive': 'FALSE',
}
resp = app.post_json(url + '?family_id=1312&child_id=613880', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local&child_id=613880', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -3415,7 +3501,10 @@ def test_add_supplied_document(family_service, con, app):
},
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -3521,7 +3610,10 @@ def test_add_rl1_direct_debit_order(family_service, invoice_service, con, app):
'bank/firstName': 'John Ross',
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
@ -3586,9 +3678,11 @@ def test_get_rl1_direct_debit_order(family_service, invoice_service, con, app):
'dateRef': '2023-01-01',
}
resp = app.get(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local', params=params)
resp = app.get(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == {
'bankBIC': 'BDFEFR2T',
@ -3705,6 +3799,9 @@ def test_read_child_agenda(activity_service, con, app):
'getPersonScheduleList', get_xml_file('R_get_person_schedule_list.xml')
)
url = get_endpoint('read-child-agenda')
resp = app.get(url + '?family_id=1312&child_id=613880&start_date=2023-01-01&end_date=2023-01-15')
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.get(url + '?NameID=local&child_id=613880&start_date=2023-01-01&end_date=2023-01-15')
@ -4110,7 +4207,6 @@ def test_update_child_agenda(activity_service, con, app):
'getPersonScheduleList', get_xml_file('R_get_person_schedule_list.xml')
)
url = get_endpoint('update-child-agenda')
Link.objects.create(resource=con, family_id='1312', name_id='local')
def request_check(request):
assert request.numDossier == 1312
@ -4157,6 +4253,11 @@ def test_update_child_agenda(activity_service, con, app):
'613880:A10049327682:2023-01-13',
],
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json == {
'changes': [
@ -4326,11 +4427,15 @@ def test_read_school_list_child_and_level(family_service, con, app):
def test_read_child_school_subscription_information(family_service, con, app):
Link.objects.create(resource=con, family_id='47916', name_id='local')
family_service.add_soap_response(
'getChildSubscribeSchoolInformation', get_xml_file('R_get_child_subscribe_school_information.xml')
)
url = get_endpoint('read-child-school-informations')
resp = app.get(url, params={'family_id': '47916', 'child_id': '190115', 'year': '2023', 'level': 'CP'})
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='47916', name_id='local')
resp = app.get(url, params={'NameID': 'local', 'child_id': '190115', 'year': '2023', 'level': 'CP'})
assert resp.json['err'] == 0
assert 'rl1Info' in resp.json['data']