server/ammicosrv/authentication/views.py
changeset 156 bf4ae7d9a517
parent 150 78e82bf8ff89
child 167 389540e1073f
--- a/server/ammicosrv/authentication/views.py	Wed Jun 10 15:15:41 2015 +0200
+++ b/server/ammicosrv/authentication/views.py	Wed Jun 10 15:19:07 2015 +0200
@@ -1,6 +1,7 @@
 
 import json
 
+from django.conf import settings
 from django.contrib.auth import get_user_model
 import requests
 from rest_framework import serializers, status, permissions, parsers, renderers
@@ -9,14 +10,11 @@
 from rest_framework.views import APIView
 
 from ammicosrv.ammico.views import populateVisit
-from django.conf import settings
+from ammicosrv.authentication.serializers import AuthTokenSerializer, \
+    UserSerializer
 
 
 #from ammico.views import populateVisit
-class UserSerializer(serializers.ModelSerializer):
-    class Meta:
-        model = get_user_model()
-
 class User(APIView):
     """
     get list user or add user
@@ -39,7 +37,7 @@
             r = requests.get(settings.URL_JAMESPOT, params=params)
             infoUser = json.loads(r.content.decode('utf-8'))
             if ('idUser' in infoUser['VAL']):
-                user_data.update({"idUser":infoUser['VAL']['idUser']})
+                user_data.update({"id_user":infoUser['VAL']['idUser']})
             user = get_user_model().objects.create_user(
                 **user_data
             )
@@ -54,8 +52,11 @@
     renderer_classes = (renderers.JSONRenderer,)
 
     def post(self, request):
-        user = get_user_model().objects.get(email = request.data['email'], password = request.data['password'])
-        if (user.idUser and 'idExpo' in request.GET):
-            populateVisit(user, request.GET['idExpo']);
-        token, _ = Token.objects.get_or_create(user=user)
-        return Response({'token': token.key})
\ No newline at end of file
+        serializer = AuthTokenSerializer(data=request.data)
+        if serializer.is_valid():
+            user = serializer.validated_data['user']
+            if (user.id_user and 'idExpo' in request.GET):
+                populateVisit(user, request.GET['idExpo'])
+            token, _ = Token.objects.get_or_create(user=user)
+            return Response({'token': token.key})
+        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
\ No newline at end of file