Test Setup Failed
Branch version-2.0 (1fe6f7)
by Piotr
01:20
created

BasePipelineViewSet   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 5
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
rs 10
wmc 1
1
from django.contrib.auth import get_user_model
2
from rest_framework import permissions, status, viewsets
3
from rest_framework.response import Response
4
5
from djoser import pipelines
6
from djoser.conf import settings
7
8
User = get_user_model()
9
10
11
def run_pipeline(pipeline, request):
12
    return settings.VIEW_PIPELINE_ADAPTER(pipeline, request)
13
14
15
class UsersViewSet(viewsets.ViewSet):
16
    permission_classes = [permissions.AllowAny]
17
18
    def create(self, request, *args, **kwargs):
19
        pipeline = pipelines.user_create.Pipeline
20
        response_data = run_pipeline(pipeline, request)
21
        return Response(response_data, status=status.HTTP_201_CREATED)
22
23
24
class UserViewSet(viewsets.ViewSet):
25
    permission_classes = [permissions.IsAuthenticated]
26
27
    def me(self, request, *args, **kwargs):
28
        pipeline = pipelines.user_detail.Pipeline
29
        response_data = run_pipeline(pipeline, request)
30
        return Response(response_data, status=status.HTTP_200_OK)
31
32
    def update(self, request, *args, **kwargs):
33
        pipeline = pipelines.user_update.Pipeline
34
        response_data = run_pipeline(pipeline, request)
35
        return Response(response_data, status=status.HTTP_200_OK)
36
37
    def remove(self, request, *args, **kwargs):
38
        pipeline = pipelines.user_delete.Pipeline
39
        run_pipeline(pipeline, request)
40
        return Response(status=status.HTTP_204_NO_CONTENT)
41
42
43
class UserActivateViewSet(viewsets.ViewSet):
44
    permission_classes = [permissions.AllowAny]
45
46
    def create(self, request, *args, **kwargs):
47
        pipeline = pipelines.user_activate.Pipeline
48
        run_pipeline(pipeline, request)
49
        return Response(status=status.HTTP_204_NO_CONTENT)
50
51
52
class UsernameUpdateViewSet(viewsets.ViewSet):
53
    permission_classes = [permissions.IsAuthenticated]
54
55
    def create(self, request, *args, **kwargs):
56
        pipeline = pipelines.username_update.Pipeline
57
        run_pipeline(pipeline, request)
58
        return Response(status=status.HTTP_204_NO_CONTENT)
59
60
61
class PasswordUpdateViewSet(viewsets.ViewSet):
62
    permission_classes = [permissions.IsAuthenticated]
63
64
    def create(self, request, *args, **kwargs):
65
        pipeline = pipelines.password_update.Pipeline
66
        run_pipeline(pipeline, request)
67
        return Response(status=status.HTTP_204_NO_CONTENT)
68
69
70
class PasswordResetViewSet(viewsets.ViewSet):
71
    permission_classes = [permissions.AllowAny]
72
73
    def create(self, request, *args, **kwargs):
74
        pipeline = pipelines.password_reset.Pipeline
75
        run_pipeline(pipeline, request)
76
        return Response(status=status.HTTP_204_NO_CONTENT)
77
78
79
class PasswordResetConfirmViewSet(viewsets.ViewSet):
80
    permission_classes = [permissions.AllowAny]
81
82
    def create(self, request, *args, **kwargs):
83
        pipeline = pipelines.password_reset_confirm.Pipeline
84
        run_pipeline(pipeline, request)
85
        return Response(status=status.HTTP_204_NO_CONTENT)
86