55from rest_framework .permissions import AllowAny , IsAuthenticated
66from rest_framework .response import Response
77
8- from core .serializers import SetLikedSerializer
8+ from core .serializers import SetLikedSerializer , SetViewedSerializer
99from core .services import add_view , set_like
1010from partner_programs .helpers import date_to_iso
1111from partner_programs .models import PartnerProgram , PartnerProgramUserProfile
@@ -28,26 +28,21 @@ class PartnerProgramList(generics.ListCreateAPIView):
2828 permission_classes = [permissions .IsAuthenticatedOrReadOnly ]
2929 pagination_class = PartnerProgramPagination
3030
31- def get (self , request , * args , ** kwargs ):
32- programs = self .paginate_queryset (self .get_queryset ())
33- context = {"user" : request .user }
34- serializer = PartnerProgramListSerializer (programs , context = context , many = True )
35- return self .get_paginated_response (serializer .data )
36-
3731
3832class PartnerProgramDetail (generics .RetrieveAPIView ):
3933 queryset = PartnerProgram .objects .all ()
4034 permission_classes = [permissions .IsAuthenticatedOrReadOnly ]
35+ serializer_class = PartnerProgramForUnregisteredUserSerializer
4136
4237 def get (self , request , * args , ** kwargs ):
4338 try :
44- program = PartnerProgram .objects .get (pk = kwargs ["pk" ])
45- # fixme
39+ program = self .get_object ()
4640 is_user_member = program .users .filter (pk = request .user .pk ).exists ()
47- if is_user_member :
48- serializer_class = PartnerProgramForMemberSerializer
49- else :
50- serializer_class = PartnerProgramForUnregisteredUserSerializer
41+ serializer_class = (
42+ PartnerProgramForMemberSerializer
43+ if is_user_member
44+ else PartnerProgramForUnregisteredUserSerializer
45+ )
5146 data = serializer_class (program ).data
5247 data ["is_user_member" ] = is_user_member
5348 if request .user .is_authenticated :
@@ -65,6 +60,7 @@ class PartnerProgramCreateUserAndRegister(generics.GenericAPIView):
6560
6661 permission_classes = [AllowAny ]
6762 serializer_class = PartnerProgramNewUserSerializer
63+ queryset = PartnerProgram .objects .none ()
6864
6965 def post (self , request , * args , ** kwargs ):
7066 data = request .data
@@ -73,7 +69,7 @@ def post(self, request, *args, **kwargs):
7369 return Response (status = status .HTTP_200_OK )
7470
7571 try :
76- program = PartnerProgram . objects . get ( pk = kwargs [ "pk" ] )
72+ program = self . get_object ( )
7773 except PartnerProgram .DoesNotExist :
7874 return Response (status = status .HTTP_404_NOT_FOUND )
7975
@@ -133,13 +129,13 @@ class PartnerProgramRegister(generics.GenericAPIView):
133129 """
134130 Register user to program and save additional program data
135131 """
136-
132+ queryset = PartnerProgram . objects . none ()
137133 permission_classes = [IsAuthenticated ]
138134 serializer_class = PartnerProgramUserSerializer
139135
140136 def post (self , request , * args , ** kwargs ):
141137 try :
142- program = PartnerProgram . objects . get ( pk = kwargs [ "pk" ] )
138+ program = self . get_object ( )
143139 if program .datetime_registration_ends < timezone .now ():
144140 return Response (
145141 data = {"detail" : "Registration period has ended." },
@@ -166,26 +162,27 @@ def post(self, request, *args, **kwargs):
166162
167163
168164class PartnerProgramSetViewed (generics .GenericAPIView ):
169- # fixme
170- # serializer_class = SetViewedSerializer
165+ queryset = PartnerProgram . objects . none ()
166+ serializer_class = SetViewedSerializer
171167 permission_classes = [IsAuthenticated ]
172168
173169 def post (self , request , * args , ** kwargs ):
174170 try :
175- program = PartnerProgram . objects . get ( pk = self .kwargs [ "pk" ] )
171+ program = self .get_object ( )
176172 add_view (program , request .user )
177173 return Response (status = status .HTTP_200_OK )
178174 except PartnerProgram .DoesNotExist :
179175 return Response (status = status .HTTP_404_NOT_FOUND )
180176
181177
182178class PartnerProgramSetLiked (generics .CreateAPIView ):
179+ queryset = PartnerProgram .objects .none ()
183180 serializer_class = SetLikedSerializer
184181 permission_classes = [IsAuthenticated ]
185182
186183 def post (self , request , * args , ** kwargs ):
187184 try :
188- program = PartnerProgram . objects . get ( pk = self .kwargs [ "pk" ] )
185+ program = self .get_object ( )
189186 set_like (program , request .user , request .data .get ("is_liked" ))
190187 return Response (status = status .HTTP_200_OK )
191188 except PartnerProgram .DoesNotExist :
0 commit comments