atos_genesys; add dossier-by-pair endpoint (#67250)

This commit is contained in:
Benjamin Dauvergne 2022-07-11 16:16:19 +02:00
parent 60dc8f362d
commit 3530430787
2 changed files with 229 additions and 0 deletions

View File

@ -526,6 +526,42 @@ class Resource(BaseResource, HTTPResource):
link, created = Link.objects.get_or_create(resource=self, name_id=NameID, id_per=id_per)
return {'link_id': link.pk, 'new': created}
@endpoint(
name='dossier-by-pair',
description=_('Get dossier data with two integers'),
perm='can_access',
parameters={
'p1': {
'description': _('First integer'),
'example_value': '1234',
},
'p2': {
'description': _('Second integer'),
'example_value': '6789',
},
},
)
def dossier_by_pair(self, request, p1, p2):
try:
p1 = int(p1)
p2 = int(p2)
if p1 < 0:
raise ValueError
if p2 < 0:
raise ValueError
if p1 <= p2:
raise ValueError
except ValueError:
raise APIError('p1 and p2 MUST be positive integers')
id_per = p1 // p2
dossier = self.call_select_usager(id_per)
return {
'data': {
'id_per': id_per,
'dossier': dossier,
}
}
class Link(models.Model):
resource = models.ForeignKey(Resource, on_delete=models.CASCADE)

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import os
import random
import mock
import pytest
@ -489,3 +490,195 @@ def test_ws_link_by_id_per(app, genesys):
assert response.json['already_paired'] is True
assert response.json['link_id'] == link.id
assert len(response.json['data']) == 3
def test_ws_dossier_by_pair(app, genesys):
url = '/atos-genesys/test1/dossier-by-pair/'
with tests.utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER) as mock:
id_per = 57879
p2 = random.randint(100, 999)
p1 = id_per * p2
response = app.get(url + f'?p1={p1}&p2={p2}')
assert response.json == {
'data': {
'dossier': {
'DEMANDES': {
'AD': [
{
'CATEGORIE': 'Décision',
'CD_CODMES_MES': 'ADAPD ',
'CODE_CATEGORIE': 'DEC_APA',
'CODE_ETAPE': 'DEC_APA01',
'COD_APPLI': 'AD',
'DT_DMD': '08/12/2016',
'DT_DMD_ORDER': '2016-12-08 ' '00:00:00.0',
'DT_FIN': '31/12/2019',
'DT_MINI_DMD': '01/01/2015',
'ETAPE': 'Décision',
'GROUPE': 'BANDEAU',
'ID_MES': '1234',
'LISTE_ETAPES': [
{
'A_SURLIGNER': 'N',
'CATEGORIE': 'Instruction ' 'administrative ' 'de ' 'la ' 'demande',
'CODE_CATEGORIE': 'INDMD',
'GROUPE': 'BANDEAU',
'ID_EGST_MES': '1234',
'LIBELLE_MES': 'A.P.A. ' 'à ' 'Domicile ' '- ' 'Révision',
'NUM_CAT': '1',
'REF_EXT_MES': '1234',
},
{
'A_SURLIGNER': 'N',
'CATEGORIE': 'Évaluation ' 'médico-sociale ' 'de ' 'la ' 'demande',
'CODE_CATEGORIE': 'EVMSD',
'GROUPE': 'BANDEAU',
'ID_EGST_MES': '1234',
'LIBELLE_MES': 'A.P.A. ' 'à ' 'Domicile ' '- ' 'Révision',
'NUM_CAT': '2',
'REF_EXT_MES': '1234',
},
{
'A_SURLIGNER': 'O',
'CATEGORIE': 'Décision',
'CATEGORIE_ETP': 'Décision',
'CD_ETP': 'DEC_APA01',
'CODE_CATEGORIE': 'DEC_APA',
'ETP': [
{
'CODE_CHAMP': 'LABEL1',
'ETAPE': 'Décision',
'LIBELLE_CHAMP': 'Votre '
'demande '
'a '
'fait '
"l'objet "
"d'une "
'décision '
'qui '
'vous '
'sera '
'adressée, '
'prochainement, '
'par '
'voie '
'postale.',
'NUM_CHAMP': '1',
'TYP_CHAMP': 'L',
}
],
'GROUPE': 'BANDEAU',
'ID_EGST_MES': '1234',
'LB_ETP': 'Décision',
'LIBELLE_MES': 'A.P.A. ' 'à ' 'Domicile ' '- ' 'Révision',
'NUM_CAT': '3',
'REF_EXT_MES': '1234',
},
],
'REF_EXT_MES': '1234',
'TYPE_MESURE': 'A.P.A. à Domicile - ' 'Révision',
}
]
},
'DEMARCHES': [{'COD_FORM': 'F_RNV_APA'}],
'DROITS': {
'PH': [
{
'COD_APPLI': 'PH',
'DATE_DEBUT': '01/01/2017',
'DATE_FIN': '31/12/2019',
'ID_PRE': '1234',
'LIBELLE': 'Un service prestataire ',
'PRESTATAIRE': 'CLUB AZUR SERVICES ',
'TYPPREST': 'Aide à domicile PA-PH',
}
]
},
'IDENTIFICATION': [
{
'CAISSE_RETRAITE': 'CRAM CAGNES SUR ' 'MER',
'CD_CMU_NAIS': '12345',
'CD_COD_VOIE_ADR': 'BLD',
'CD_PAY_ADR': '100 ',
'CD_SIT_FAM': 'SITFAM_C',
'CIVILITE': 'Madame',
'CMU_NAIS': 'NICE',
'CODE_POSTAL': '06000',
'CODPOS_NAIS': '12345',
'COMPLEMENT_ADRESSE': 'RESIDENCE ' 'BLABLA',
'CONJOINT': [
{
'CAISSE_RETRAITE': 'CRAM ' 'CAGNES ' 'SUR ' 'MER',
'CD_COD_VOIE_ADR': 'BLD',
'CODE_POSTAL': '06000',
'COMPLEMENT_ADRESSE': 'RESIDENCE ' 'ALSACE ',
'DATE_NAISSANCE': '01/01/1960',
'LB_COD_BTQ_ADR': 'Bis',
'LB_COD_VOIE_ADR': 'Boulevard',
'LB_VOIE_ADR': 'du ' 'Revestel',
'MAIL': 'test@sirus.fr',
'NATIONALITE': 'FRANCE',
'NOM': 'NOM conjoint',
'NOM_NAISSANCE': 'NOM ',
'NSS': '253077507300584',
'NUM_AFFILIATION': '123456789',
'NU_VOIE_ADR': '65',
'PRENOM': 'Prénom',
'TEL_FIXE': '06.61.75.69.51',
'TEL_MOBILE': '06.61.75.69.51',
'VILLE': 'NICE',
}
],
'CONTACTS': [
{
'CD_COD_VOIE_ADR': 'BLD',
'CODE_POSTAL': '06000',
'COMPLEMENT_ADRESSE': 'RESIDENCE ' 'BLABLA',
'LB_COD_BTQ_ADR': 'Bis',
'LB_COD_VOIE_ADR': 'Boulevard',
'LB_VOIE_ADR': 'GAMBETTA',
'MAIL': 'test@sirus.fr',
'NOM': 'NOM ',
'NU_VOIE_ADR': '65',
'PRENOM': 'Prénom',
'RELATION': 'TYP_CNT_AID',
'TEL_FIXE': '06.22.22.22.22',
'TEL_MOBILE': '06.11.11.11.11',
'VILLE': 'NICE',
}
],
'DATE_NAISSANCE': '01/01/1923',
'DPT_NAIS': 'ALPES-MARITMES',
'IDDOS': '12345',
'ID_PER': '1234',
'LB_COD_BTQ_ADR': 'Bis',
'LB_COD_VOIE_ADR': 'Boulevard',
'LB_PAY_ADR': 'FRANCE',
'LB_VOIE_ADR': 'du Revestel',
'MAIL': 'test@sirus.fr',
'NATIONALITE': 'Française (Valeurs '
'Possibles\xa0: '
'Française, '
'Européenne,Autre)',
'NOM': 'DOE',
'NOM_NAISSANCE': 'TEST',
'NSS': '253077507312383',
'NUM_AFFILIATION': '123456789',
'NU_VOIE_ADR': '65',
'PAYS_NAIS': 'FRANCE',
'PRENOM': 'John',
'REF_PH_DOS': '123456',
'REF_UTI_DOS': '123456',
'SEXE': 'F',
'SIT_FAM': 'Célibat',
'TEL_FIXE': '06.44.44.44.44',
'TEL_MOBILE': '06.55.55.55.55',
'VILLE': 'NICE',
}
],
},
'id_per': 57879,
},
'err': 0,
}
assert f'idPer={id_per}&' in mock.handlers[0].call['requests'][0].url