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,) |