atos_genesys; add dossier-by-pair endpoint (#67250)
This commit is contained in:
parent
60dc8f362d
commit
3530430787
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue