toulouse-maelis: add get-family-id endpoint (#87561) #483

Merged
nroche merged 1 commits from wip/87561-parsifal-add-get-family-id-endpoint into main 2024-03-01 17:58:38 +01:00
2 changed files with 44 additions and 0 deletions

View File

@ -1351,6 +1351,24 @@ class ToulouseMaelis(BaseResource, HTTPResource):
)
return {'data': data}
@endpoint(
display_category='Famille',
description='Obtenir un numéro de dossier famille',
name='get-family-id',
parameters={
'NameID': {'description': 'Publik NameID'},
'family_id': {'description': 'Numéro de DUI'},
},
)
def get_family_id(self, request, NameID=None, family_id=None):
Review

Le fait d'accepter family_id pour rien c'est juste pour pouvoir écrire {% if webservice.hasFamilyId.data %} au lieu de {% if form_var_backoffice_calcul or webservice.hasFamilyId.data %} ? Je suis pas super convaincu mais pourquoi pas.

Le fait d'accepter family_id pour rien c'est juste pour pouvoir écrire ```{% if webservice.hasFamilyId.data %}``` au lieu de ```{% if form_var_backoffice_calcul or webservice.hasFamilyId.data %}``` ? Je suis pas super convaincu mais pourquoi pas.
Review

Oui.
(c'est pour pas trop polluer wcs si possible)

Oui. (c'est pour pas trop polluer wcs si possible)
Review

J'ai fais le tour des appels WS
https://dev.entrouvert.org/issues/85665
et je pense que l'on pourrait avoir partout :

NameID : {{ form_user_name_identifier_0 }}
family_id : {{ form_var_backoffice_calcul }}

(ça participerait à la dépollution également)

J'ai fais le tour des appels WS https://dev.entrouvert.org/issues/85665 et je pense que l'on pourrait avoir partout : ``` NameID : {{ form_user_name_identifier_0 }} family_id : {{ form_var_backoffice_calcul }} ``` (ça participerait à la dépollution également)
if NameID and family_id:
raise APIError('NameID and family_id both provided')
try:
family_id = family_id or self.get_link(NameID).family_id
except APIError:
return {'data': None}
return {'data': family_id}
@endpoint(
display_category='Famille',
description='Rechercher un dossier famille',

View File

@ -895,6 +895,32 @@ def test_get_link_list_service_error(con, app, freezer):
]
def test_get_family_id(con, app):
url = get_endpoint('get-family-id')
Link.objects.create(resource=con, family_id='1312', name_id='local')
# NameID is provided on front-office acces
resp = app.get(url + '?NameID=local')
assert resp.json['err'] == 0
assert resp.json['data'] == '1312'
# family_id is provided on back-office acces
resp = app.get(url + '?family_id=1312')
assert resp.json['err'] == 0
assert resp.json['data'] == '1312'
# error from front-office
resp = app.get(url + '?NameID=plop')
assert resp.json['err'] == 0
assert resp.json['data'] is None
# error by providing the 2 parameters :
# we cannot stat from which portal the call come from
resp = app.get(url + '?NameID=local&family_id=42')
assert resp.json['err'] == 1
assert resp.json['err_desc'] == 'NameID and family_id both provided'
def test_get_referential(con):
assert con.get_referential('Category') == [
{'code': 'BI', 'id': 'BI', 'libelle': 'BIPARENTALE', 'text': 'BIPARENTALE'},