astech: add endpoint to get view columns (#82416)

This commit is contained in:
Serghei Mihai 2023-10-10 09:22:57 +02:00
parent 94184d9c5e
commit 2bbc835787
2 changed files with 45 additions and 0 deletions

View File

@ -454,3 +454,24 @@ class ASTech(BaseResource, HTTPResource):
view['id'] = view['apivId']
view['text'] = view['apivNom']
return {'data': astech_views}
@endpoint(
name='get-view-columns',
display_order=2,
description=_('Get view columns'),
display_category=_('Referential'),
parameters={
'code': {
'description': _('View code'),
'example_value': 'ASTECH_BIENS',
},
},
)
def get_view_columns(self, request, code):
endpoint = 'apicli/data/%s/columns' % code
results = self.call(endpoint)
columns = results.get('columns', [])
for column in columns:
column['id'] = column['code']
column['text'] = column['des']
return {'data': columns}

View File

@ -83,6 +83,11 @@ VIEWS_RESPONSE = """
{"apivId":"1","apivCode":"ASTECH_BIENS","apivNom":"Liste des biens"}]}
"""
COLUMNS_RESPONSE = """
{"columns":[{"code":"BIEN_ID","des":"Identifiant du bien AS-TECH","type":"NUM","length":"18"},
{"code":"ANCETREID","des":"Identifiant de l\u0027anc\u00eatre du bien","type":"NUM","length":""}]}
"""
@mock.patch('passerelle.utils.Request.request')
def test_connections(mocked_request, app, setup):
@ -459,3 +464,22 @@ def test_list_views(mocked_auth, mocked_request, app, setup):
for r in response.json['data']:
assert 'id' in r
assert 'text' in r
@mock.patch('passerelle.utils.Request.request')
@mock.patch('passerelle.apps.astech.models.ASTech.get_authorization')
def test_view_columns(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': 'get-view-columns'},
)
mocked_request.return_value = tests.utils.FakedResponse(content=COLUMNS_RESPONSE, status_code=200)
response = app.get(endpoint, params={'code': 'ASTECH_BIENS'})
assert mocked_request.call_args[0][0] == 'get'
assert mocked_request.call_args[0][1].endswith('apicli/data/ASTECH_BIENS/columns')
assert response.json['data']
for r in response.json['data']:
assert 'id' in r
assert 'text' in r