diff --git a/passerelle/contrib/rsa13/models.py b/passerelle/contrib/rsa13/models.py index 9d670046..ff0dd7c6 100644 --- a/passerelle/contrib/rsa13/models.py +++ b/passerelle/contrib/rsa13/models.py @@ -2017,3 +2017,31 @@ class RSA13Resource(BaseResource, HTTPResource): for row in content.get('data') or []: writer.writerow(str(row.get(name) or '') for name in names) return response + + @endpoint( + name='sous-action', + description=_('Get sub-actions'), + perm='can_access', + json_schema_response=response_schema( + { + 'type': 'array', + 'items': { + 'type': 'object', + 'required': ['id', 'text'], + 'properties': { + 'id': { + 'type': 'string', + }, + 'text': { + 'type': 'string', + }, + 'description': { + 'type': 'string', + }, + }, + }, + } + ), + ) + def sous_action(self, request, email, ip=None): + return self.get('sousaction/', email=email, ip=ip) diff --git a/tests/test_rsa13.py b/tests/test_rsa13.py index 136c5813..cdaa2d39 100644 --- a/tests/test_rsa13.py +++ b/tests/test_rsa13.py @@ -1237,3 +1237,114 @@ def test_platform_beneficiaire_sorti_csv(app, rsa13, url, settings): response = app.get(url + 'platform/11/beneficiaire/sorti/csv/') stream = io.StringIO(response.content.decode('utf-8-sig')) assert list(csv.reader(stream, delimiter=';')) == [['NUM_CAF'], ['372927'], ['1677380']] + + +@mock_response( + [ + '/api/sousaction/', + { + 'err': 0, + 'data': [ + { + "id": "A1", + "text": "A1 - DAIE 13", + "description": "DISPOSITIF d'Accompagnement et d'Insertion par l'Emploi.\n", + }, + { + "id": "A10", + "text": "A10 - Accompagnement Global", + "description": ( + 'Accompagnement de Pôle Emploi qui permet la prise en charge simultanée de ' + 'problématiques sociales et professionnelles, par l’intervention conjointe ' + 'd’un travailleur social et d’un conseiller dédié de Pôle Emploi.' + ), + }, + { + "id": "A11", + "text": "A11 - MODALH", + "description": ( + 'C’est un diagnostic qui évalue l’employabilité ou la nécessité ' + 'd’un accès à une prestation plus adaptée (AAH) pour les bénéficiaires ' + 'du RSA ayant un CER santé. La prescription est uniquement assuré par ' + 'le médecin du Pôle d’insertion.' + ), + }, + { + "id": "A12", + "text": "A12 - PHARE", + "description": ( + 'C’est un accompagnement pour le retour à l’emploi des bénéficiaires ' + 'du RSA reconnus travailleur handicapé. Il se formalise par la réalisation d’un CER.' + ), + }, + {"id": "A13", "text": "A13 - CAP Emploi", "description": None}, + { + "id": "A14", + "text": "A14 - Accompagnement Global spécialisé", + "description": ( + 'A utiliser dans le cadre de la convention signée avec trois lieux d\'accueil ' + 'sur l’expérimentation de l’accompagnement global spécialisé' + ), + }, + {"id": "A15", "text": "A15 - Boost Emploi", "description": None}, + { + "id": "A16", + "text": "A16 - Lieu accueil spécialisé travailleur indépendant", + "description": None, + }, + ], + }, + ] +) +def test_sous_action(app, rsa13, url): + response = app.get(url + 'sous-action/') + assert response.json == { + 'data': [ + { + 'description': "DISPOSITIF d'Accompagnement et d'Insertion par " "l'Emploi.\n", + 'id': 'A1', + 'text': 'A1 - DAIE 13', + }, + { + 'description': 'Accompagnement de Pôle Emploi qui permet la prise ' + 'en charge simultanée de problématiques sociales et ' + 'professionnelles, par l’intervention conjointe d’un ' + 'travailleur social et d’un conseiller dédié de Pôle ' + 'Emploi.', + 'id': 'A10', + 'text': 'A10 - Accompagnement Global', + }, + { + 'description': 'C’est un diagnostic qui évalue l’employabilité ou ' + 'la nécessité d’un accès à une prestation plus ' + 'adaptée (AAH) pour les bénéficiaires du RSA ayant ' + 'un CER santé. La prescription est uniquement assuré ' + 'par le médecin du Pôle d’insertion.', + 'id': 'A11', + 'text': 'A11 - MODALH', + }, + { + 'description': 'C’est un accompagnement pour le retour à l’emploi ' + 'des bénéficiaires du RSA reconnus travailleur ' + 'handicapé. Il se formalise par la réalisation d’un ' + 'CER.', + 'id': 'A12', + 'text': 'A12 - PHARE', + }, + {'description': None, 'id': 'A13', 'text': 'A13 - CAP Emploi'}, + { + 'description': 'A utiliser dans le cadre de la convention signée ' + "avec trois lieux d'accueil sur l’expérimentation de " + 'l’accompagnement global spécialisé', + 'id': 'A14', + 'text': 'A14 - Accompagnement Global spécialisé', + }, + {'description': None, 'id': 'A15', 'text': 'A15 - Boost Emploi'}, + { + 'description': None, + 'id': 'A16', + 'text': 'A16 - Lieu accueil spécialisé travailleur indépendant', + }, + ], + 'err': 0, + }