From a04eeac49908505af88564942625fb439eca091e Mon Sep 17 00:00:00 2001 From: Josue Kouka Date: Wed, 15 Feb 2017 15:26:55 +0100 Subject: [PATCH 3/3] archimed: return Response in Publik Api Response format(#14967) --- mandayejs/views.py | 18 +++++++++++------- tests/test_archimed.py | 16 ++++++++-------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/mandayejs/views.py b/mandayejs/views.py index d45bd43..8dc6499 100644 --- a/mandayejs/views.py +++ b/mandayejs/views.py @@ -32,6 +32,14 @@ class ArchimedAccountDetails(APIView): """Archimed user's account details """ + def dispatch(self, request, *args, **kwargs): + response = super(ArchimedAccountDetails, self).dispatch(request, *args, **kwargs) + if response.status_code == 200: + response.data = {'data': response.data, 'err': 0} + else: + response.data = {'data': None, 'err': 1, 'err_desc': response.data} + return response + def get(self, request, *args, **kwargs): logger = logging.getLogger(__name__) app_settings = get_app_settings() @@ -43,15 +51,12 @@ class ArchimedAccountDetails(APIView): try: user = User.objects.get(username=username) except (User.DoesNotExist,): - return Response({'message': 'User %s does not exist' % username, - 'success': False}, status=status.HTTP_404_NOT_FOUND) + return Response('User %s does not exist' % username, status=status.HTTP_404_NOT_FOUND) try: credentials = UserCredentials.objects.get(user=user) except (UserCredentials.DoesNotExist,): - return Response({ - 'message': 'User %s is not associated' % username, - 'success': False}, status=status.HTTP_404_NOT_FOUND) + return Response('User %s is not associated' % username, status=status.HTTP_404_NOT_FOUND) login_url = request.build_absolute_uri( '/DEFAULT/Ermes/Recherche/logon.svc/logon') @@ -62,8 +67,7 @@ class ArchimedAccountDetails(APIView): response = session.post(login_url, data=login_info) logger.debug("Archimed login response {}".format(response.json())) if not response.json()['success']: - return Response({'message': 'Authentication failed', - 'success': False}, status=status.HTTP_401_UNAUTHORIZED) + return Response('Authentication failed', status=status.HTTP_401_UNAUTHORIZED) content = { 'codeConfig': '', diff --git a/tests/test_archimed.py b/tests/test_archimed.py index 4214235..0f55b4d 100644 --- a/tests/test_archimed.py +++ b/tests/test_archimed.py @@ -41,16 +41,16 @@ def test_archimed_ws(mocked_get_app_settings, mocked_requests_post): client.login(username='kevin', password='kevin') response = client.get('/_mandaye/ws/account/whatever/') assert response.status_code == 404 - assert response.data['message'] == 'User whatever does not exist' - assert response.data['success'] is False + assert json.loads(response.content)['err_desc'] == 'User whatever does not exist' + assert json.loads(response.content)['err'] == 1 # test with unlinked user client = Client() client.login(username='kevin', password='kevin') response = client.get('/_mandaye/ws/account/kevin/') assert response.status_code == 404 - assert response.data['message'] == 'User kevin is not associated' - assert response.data['success'] is False + assert json.loads(response.content)['err_desc'] == 'User kevin is not associated' + assert json.loads(response.content)['err'] == 1 create_credentials(user, {'carte': 'kevin', 'code': 'whatever'}) # test with wrong credentials @@ -58,12 +58,12 @@ def test_archimed_ws(mocked_get_app_settings, mocked_requests_post): client.login(username='kevin', password='kevin') response = client.get('/_mandaye/ws/account/kevin/') assert response.status_code == 401 - assert response.data['message'] == 'Authentication failed' - assert response.data['success'] is False + assert json.loads(response.content)['err_desc'] == 'Authentication failed' + assert json.loads(response.content)['err'] == 1 # test with good credentials client.login(username='kevin', password='kevin') response = client.get('/_mandaye/ws/account/kevin/') assert response.status_code == 200 - assert response.data['message'] == 'Whatever is whatever' - assert response.data['success'] is True + assert json.loads(response.content)['data']['message'] == 'Whatever is whatever' + assert json.loads(response.content)['data']['success'] is True -- 2.11.0