server/src/authentication/views.py
changeset 118 fea47f1054e2
parent 117 41a78460bdac
equal deleted inserted replaced
117:41a78460bdac 118:fea47f1054e2
     7 from rest_framework.authtoken.models import Token
     7 from rest_framework.authtoken.models import Token
     8 from rest_framework.response import Response
     8 from rest_framework.response import Response
     9 from rest_framework.views import APIView
     9 from rest_framework.views import APIView
    10 
    10 
    11 from ammico.views import populateVisit
    11 from ammico.views import populateVisit
    12 from config import URL_JAMESPOT
    12 from django.conf import settings
    13 
    13 
    14 
    14 
    15 class UserSerializer(serializers.ModelSerializer):
    15 class UserSerializer(serializers.ModelSerializer):
    16     class Meta:
    16     class Meta:
    17         model = get_user_model()
    17         model = get_user_model()
    19 class User(APIView):
    19 class User(APIView):
    20     """
    20     """
    21     get list user or add user
    21     get list user or add user
    22     """
    22     """
    23     permission_classes = (permissions.AllowAny,)
    23     permission_classes = (permissions.AllowAny,)
    24     
    24 
    25     def get(self, request):
    25     def get(self, request):
    26         user = get_user_model().objects.all()
    26         user = get_user_model().objects.all()
    27         serializer = UserSerializer(user, many=True)
    27         serializer = UserSerializer(user, many=True)
    28         return Response(serializer.data)
    28         return Response(serializer.data)
    29         
    29 
    30     def post(self, request):
    30     def post(self, request):
    31         VALID_USER_FIELDS = [f.name for f in get_user_model()._meta.fields]
    31         VALID_USER_FIELDS = [f.name for f in get_user_model()._meta.fields]
    32         serialized = UserSerializer(data=request.data)
    32         serialized = UserSerializer(data=request.data)
    33         
    33 
    34         if serialized.is_valid():
    34         if serialized.is_valid():
    35             user_data = {field: data for (field, data) in request.DATA.items() if field in VALID_USER_FIELDS}
    35             user_data = {field: data for (field, data) in request.DATA.items() if field in VALID_USER_FIELDS}
    36             
    36 
    37             params = {'o': 'user', 'f': 'get', 'mail': user_data['email']}
    37             params = {'o': 'user', 'f': 'get', 'mail': user_data['email']}
    38             r = requests.get(URL_JAMESPOT, params=params)
    38             r = requests.get(settings.URL_JAMESPOT, params=params)
    39             infoUser = json.loads(r.content.decode('utf-8'))
    39             infoUser = json.loads(r.content.decode('utf-8'))
    40             if ('idUser' in infoUser['VAL']):
    40             if ('idUser' in infoUser['VAL']):
    41                 user_data.update({"idUser":infoUser['VAL']['idUser']})
    41                 user_data.update({"idUser":infoUser['VAL']['idUser']})
    42             user = get_user_model().objects.create_user(
    42             user = get_user_model().objects.create_user(
    43                 **user_data
    43                 **user_data
    44             )
    44             )
    45             return Response(UserSerializer(instance=user).data, status=status.HTTP_201_CREATED)
    45             return Response(UserSerializer(instance=user).data, status=status.HTTP_201_CREATED)
    46         else:
    46         else:
    47             return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
    47             return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
    48         
    48 
    49 class ObtainAuthToken(APIView):
    49 class ObtainAuthToken(APIView):
    50     throttle_classes = ()
    50     throttle_classes = ()
    51     permission_classes = ()
    51     permission_classes = ()
    52     parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
    52     parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
    53     renderer_classes = (renderers.JSONRenderer,)
    53     renderer_classes = (renderers.JSONRenderer,)