astech: add endpoint to list available views (#82416)

This commit is contained in:
Serghei Mihai 2023-10-05 11:39:56 +02:00
parent 76f3860ad2
commit 94184d9c5e
2 changed files with 38 additions and 0 deletions

View File

@ -440,3 +440,17 @@ class ASTech(BaseResource, HTTPResource):
position['id'] = position['position']
position['text'] = position['positionLib']
return {'data': positions}
@endpoint(
name='list-views',
display_order=1,
description=_('List available views'),
display_category=_('Referential'),
)
def list_views(self, request):
results = self.call('apicli/data/views')
astech_views = results.get('views', [])
for view in astech_views:
view['id'] = view['apivId']
view['text'] = view['apivNom']
return {'data': astech_views}

View File

@ -78,6 +78,11 @@ POSITIONS_RESPONSE = """
[{"position":"A","positionLib":"En attente","color":"0, 0, 0"},{"position":"E","positionLib":"Envoi","color":"190, 190, 0"},{"position":"C","positionLib":"En cours","color":"255, 0, 0"},{"position":"D","positionLib":"Envoi signataire","color":"255, 255, 113"},{"position":"T","positionLib":"Termin\u00e9","color":"0, 0, 0"},{"position":"I","positionLib":"\u00c9dition devis","color":"0, 255, 255"},{"position":"R","positionLib":"Refus","color":"255, 0, 0"},{"position":"V","positionLib":"V\u00e9rification","color":"0, 255, 0"},{"position":"F","positionLib":"Devis effectu\u00e9","color":"153, 204, 255"},{"position":"P","positionLib":"Livraison partielle","color":"255, 102, 0"},{"position":"L","positionLib":"Livraison","color":"128, 0, 0"}]
"""
VIEWS_RESPONSE = """
{"views":[{"apivId":"7","apivCode":"ASTECH_FORMDYN","apivNom":"Formulaires dynamiques - champs de saisie"},
{"apivId":"1","apivCode":"ASTECH_BIENS","apivNom":"Liste des biens"}]}
"""
@mock.patch('passerelle.utils.Request.request')
def test_connections(mocked_request, app, setup):
@ -435,3 +440,22 @@ def test_positions(mocked_auth, mocked_request, app, setup):
'id': 'A',
'text': 'En attente',
}
@mock.patch('passerelle.utils.Request.request')
@mock.patch('passerelle.apps.astech.models.ASTech.get_authorization')
def test_list_views(mocked_auth, mocked_request, app, setup):
mocked_auth.return_value = {'access_token': '4242', 'connection_id': 'TEST'}
endpoint = reverse(
'generic-endpoint',
kwargs={'connector': 'astech', 'slug': setup.slug, 'endpoint': 'list-views'},
)
mocked_request.return_value = tests.utils.FakedResponse(content=VIEWS_RESPONSE, status_code=200)
response = app.get(endpoint)
assert mocked_request.call_args[0][0] == 'get'
assert mocked_request.call_args[0][1].endswith('apicli/data/views')
assert response.json['data']
for r in response.json['data']:
assert 'id' in r
assert 'text' in r