Skip to content

Commit 19438dc

Browse files
authored
Merge pull request #237 from PROCOLLAB-github/feature/swagger-doc-fix
swagger doc fix, convert to correct with generics functions view
2 parents 5067465 + fd2ecbb commit 19438dc

7 files changed

Lines changed: 35 additions & 37 deletions

File tree

chats/urls.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,26 @@
1616

1717
urlpatterns = [
1818
path("directs/", DirectChatList.as_view(), name="direct-chat-list"),
19-
path("directs/<slug:pk>/", DirectChatDetail.as_view(), name="direct-chat-detail"),
19+
path("directs/<slug:id>/", DirectChatDetail.as_view(), name="direct-chat-detail"),
2020
path(
21-
"directs/<slug:pk>/messages/",
21+
"directs/<slug:id>/messages/",
2222
DirectChatMessageList.as_view(),
2323
name="direct-chat-messages",
2424
),
2525
path(
26-
"directs/<slug:pk>/files/",
26+
"directs/<slug:id>/files/",
2727
DirectChatFileList.as_view(),
2828
name="direct-chat-files",
2929
),
3030
path("projects/", ProjectChatList.as_view(), name="project-chat-list"),
3131
path("projects/<int:pk>/", ProjectChatDetail.as_view(), name="project-chat-detail"),
3232
path(
33-
"projects/<int:pk>/messages/",
33+
"projects/<int:id>/messages/",
3434
ProjectChatMessageList.as_view(),
3535
name="project-chat-messages",
3636
),
3737
path(
38-
"projects/<int:pk>/files/",
38+
"projects/<int:id>/files/",
3939
ProjectChatFileList.as_view(),
4040
name="project-chat-files",
4141
),

chats/views.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,13 @@ class DirectChatDetail(RetrieveAPIView):
8686

8787
def get(self, request, *args, **kwargs) -> Response:
8888
try:
89-
assert "_" in self.kwargs["pk"], "pk must contain underscore"
89+
assert "_" in self.kwargs["id"], "processed id must contain underscore"
9090

91-
user1_id, user2_id = map(int, self.kwargs["pk"].split("_"))
91+
user1_id, user2_id = map(int, self.kwargs["id"].split("_"))
9292

9393
assert (
9494
request.user.id == user1_id or request.user.id == user2_id
95-
), "current user id is not present in pk"
95+
), "current user id is not present in raw id"
9696

9797
user1 = User.objects.get(pk=user1_id)
9898
user2 = User.objects.get(pk=user2_id)
@@ -117,7 +117,7 @@ def get(self, request, *args, **kwargs) -> Response:
117117
except ValueError:
118118
return Response(
119119
status=status.HTTP_400_BAD_REQUEST,
120-
data={"detail": "pk must contain two integers separated by underscore"},
120+
data={"detail": "processed id must contain two integers separated by underscore"},
121121
)
122122
except AssertionError as e:
123123
return Response(status=status.HTTP_400_BAD_REQUEST, data={"detail": str(e)})
@@ -140,7 +140,7 @@ class DirectChatMessageList(ListCreateAPIView):
140140

141141
def get_queryset(self):
142142
return (
143-
self.request.user.direct_chats.get(id=self.kwargs["pk"])
143+
self.request.user.direct_chats.get(id=self.kwargs["id"])
144144
.messages.filter(is_deleted=False)
145145
.order_by("-created_at")
146146
.all()
@@ -155,7 +155,7 @@ class ProjectChatMessageList(ListCreateAPIView):
155155
def get_queryset(self):
156156
try:
157157
return (
158-
ProjectChat.objects.get(id=self.kwargs["pk"])
158+
ProjectChat.objects.get(id=self.kwargs["id"])
159159
.messages.filter(is_deleted=False)
160160
.order_by("-created_at")
161161
.all()
@@ -177,7 +177,8 @@ class DirectChatFileList(ListCreateAPIView):
177177
permission_classes = [IsAuthenticated]
178178

179179
def get_queryset(self):
180-
messages = self.request.user.direct_chats.get(id=self.kwargs["pk"]).messages.all()
180+
181+
messages = self.request.user.direct_chats.get(id=self.kwargs["id"]).messages.all()
181182

182183
return get_all_files(messages)
183184

@@ -188,7 +189,7 @@ class ProjectChatFileList(ListCreateAPIView):
188189

189190
def get_queryset(self):
190191
try:
191-
messages = ProjectChat.objects.get(id=self.kwargs["pk"]).messages.all()
192+
messages = ProjectChat.objects.get(id=self.kwargs["id"]).messages.all()
192193
return get_all_files(messages)
193194
except ProjectChat.DoesNotExist:
194195
return UserFile.objects.none()

events/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
urlpatterns = [
88
path("", EventsList.as_view()),
99
path("<int:pk>/", EventDetail.as_view()),
10-
path("<int:pk>/registered/", EventRegisteredUsersList.as_view()),
10+
path("<int:id>/registered/", EventRegisteredUsersList.as_view()),
1111
path("types/", EventTypes.as_view()),
1212
]

events/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class EventRegisteredUsersList(generics.ListAPIView):
3434
permission_classes = [IsStaffOrReadOnly]
3535

3636
def get_queryset(self):
37-
users = Event.objects.get(pk=self.kwargs["pk"]).registered_users.all()
37+
users = Event.objects.get(pk=self.kwargs["id"]).registered_users.all()
3838
return users
3939

4040

partner_programs/views.py

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from rest_framework.permissions import AllowAny, IsAuthenticated
66
from rest_framework.response import Response
77

8-
from core.serializers import SetLikedSerializer
8+
from core.serializers import SetLikedSerializer, SetViewedSerializer
99
from core.services import add_view, set_like
1010
from partner_programs.helpers import date_to_iso
1111
from 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

3832
class 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

168164
class 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

182178
class 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:

projects/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@
3636
path("steps/", ProjectSteps.as_view()),
3737
path("achievements/", AchievementList.as_view()),
3838
path("achievements/<int:pk>/", AchievementDetail.as_view()),
39-
path("<int:pk>/responses/", ProjectVacancyResponses.as_view()),
39+
path("<int:id>/responses/", ProjectVacancyResponses.as_view()),
4040
]

projects/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ class ProjectVacancyResponses(generics.GenericAPIView):
285285
permission_classes = [IsAuthenticated]
286286

287287
def get_queryset(self):
288-
return VacancyResponse.objects.filter(vacancy__project_id=self.kwargs["pk"])
288+
return VacancyResponse.objects.filter(vacancy__project_id=self.kwargs["id"])
289289

290290
def get(self, request, pk):
291291
queryset = self.get_queryset()

0 commit comments

Comments
 (0)