|
1 | | -import rest_framework.exceptions |
2 | 1 | import rest_framework.generics |
3 | 2 | import rest_framework.response |
4 | | -import rest_framework.serializers |
5 | 3 | import rest_framework.status |
6 | | -import rest_framework_simplejwt.exceptions |
7 | 4 | import rest_framework_simplejwt.tokens |
8 | 5 | import rest_framework_simplejwt.views |
9 | 6 |
|
10 | | -import core.views |
11 | 7 | import user.serializers |
12 | 8 |
|
13 | 9 |
|
14 | | -class SignUpView( |
15 | | - core.views.BaseCustomResponseMixin, |
| 10 | +class UserSignUpView( |
16 | 11 | rest_framework.generics.CreateAPIView, |
17 | 12 | ): |
18 | 13 | serializer_class = user.serializers.SignUpSerializer |
19 | 14 |
|
20 | 15 | def create(self, request, *args, **kwargs): |
21 | 16 | serializer = self.get_serializer(data=request.data) |
22 | | - |
23 | | - try: |
24 | | - serializer.is_valid(raise_exception=True) |
25 | | - except rest_framework.exceptions.ValidationError: |
26 | | - return self.handle_validation_error() |
| 17 | + serializer.is_valid(raise_exception=True) |
27 | 18 |
|
28 | 19 | user = serializer.save() |
29 | | - |
30 | 20 | refresh = rest_framework_simplejwt.tokens.RefreshToken.for_user(user) |
31 | 21 | refresh['token_version'] = user.token_version |
| 22 | + |
32 | 23 | access_token = refresh.access_token |
33 | 24 |
|
| 25 | + response_data = { |
| 26 | + 'access': str(access_token), |
| 27 | + 'refresh': str(refresh), |
| 28 | + } |
| 29 | + |
34 | 30 | return rest_framework.response.Response( |
35 | | - {'access': str(access_token), 'refresh': str(refresh)}, |
| 31 | + response_data, |
36 | 32 | status=rest_framework.status.HTTP_200_OK, |
37 | 33 | ) |
38 | 34 |
|
39 | 35 |
|
40 | | -class SignInView( |
41 | | - core.views.BaseCustomResponseMixin, |
| 36 | +class UserSignInView( |
42 | 37 | rest_framework_simplejwt.views.TokenObtainPairView, |
43 | 38 | ): |
44 | 39 | serializer_class = user.serializers.SignInSerializer |
45 | | - |
46 | | - def post(self, request, *args, **kwargs): |
47 | | - try: |
48 | | - serializer = self.get_serializer(data=request.data) |
49 | | - serializer.is_valid(raise_exception=True) |
50 | | - except ( |
51 | | - rest_framework.serializers.ValidationError, |
52 | | - rest_framework_simplejwt.exceptions.TokenError, |
53 | | - ) as e: |
54 | | - if isinstance(e, rest_framework.serializers.ValidationError): |
55 | | - return self.handle_validation_error() |
56 | | - |
57 | | - raise rest_framework_simplejwt.exceptions.InvalidToken(str(e)) |
58 | | - |
59 | | - response_data = { |
60 | | - 'access': serializer.validated_data['access'], |
61 | | - 'refresh': serializer.validated_data['refresh'], |
62 | | - } |
63 | | - |
64 | | - return rest_framework.response.Response( |
65 | | - response_data, |
66 | | - status=rest_framework.status.HTTP_200_OK, |
67 | | - ) |
0 commit comments