55from rest_framework .decorators import action
66from rest_framework .response import Response
77
8- from features .models import Feature , FeatureState , FLAG
9- from features .serializers import FeatureSerializer
108from environments .serializers import EnvironmentSerializerLight
119from projects .models import Project
1210from projects .serializers import ProjectSerializer
@@ -26,55 +24,4 @@ def get_queryset(self):
2624 def environments (self , request , pk ):
2725 project = self .get_object ()
2826 environments = project .environments .all ()
29- return Response (EnvironmentSerializerLight (environments , many = True ).data )
30-
31- @action (detail = True , methods = ["GET" , "POST" , "PUT" , "DELETE" ])
32- def features (self , request , pk ):
33- project = self .get_object ()
34-
35- self .queryset = Feature .objects .filter (project = project )
36- self .serializer_class = FeatureSerializer
37-
38- if request .method == "POST" :
39- data = {
40- "project" : project .id ,
41- "name" : request .data ["name" ],
42- "initial_value" : request .data .get ("initial_value" ),
43- "description" : request .data .get ("description" ),
44- "type" : request .data .get ("type" , FLAG ),
45- "default_enabled" : request .data .get ("default_enabled" , False ),
46- }
47-
48- f_serializer = FeatureSerializer (data = data )
49-
50- if f_serializer .is_valid ():
51- f_serializer .save ()
52- return Response (f_serializer .data , status = status .HTTP_201_CREATED )
53- else :
54- return Response (f_serializer .errors , status = status .HTTP_400_BAD_REQUEST )
55-
56- elif request .method == "PUT" :
57- data = {
58- "id" : request .data ["id" ],
59- "project" : project .id ,
60- "name" : request .data ["name" ],
61- "initial_value" : request .data ["initial_value" ]
62- }
63-
64- serializer = FeatureSerializer (data = data )
65-
66- if serializer .is_valid ():
67- feature_to_update = Feature .objects .get (pk = data ["id" ])
68- feature_updated = serializer .update (feature_to_update , serializer .validated_data )
69- return Response (FeatureSerializer (feature_updated ).data ,
70- status = status .HTTP_201_CREATED )
71- else :
72- return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
73-
74- elif request .method == "DELETE" :
75- Feature .objects .get (pk = request .data ["id" ]).delete ()
76- return Response (status = status .HTTP_200_OK )
77-
78- else :
79- serializer = FeatureSerializer (instance = self .queryset , many = True )
80- return Response (serializer .data )
27+ return Response (EnvironmentSerializerLight (environments , many = True ).data )
0 commit comments