@@ -79,11 +79,7 @@ class UserChooseSkills(generics.UpdateAPIView):
7979
8080 def update (self , request , * args , ** kwargs ):
8181 try :
82- skills = (
83- Skill .published
84- .for_user (self .request .user )
85- .filter (id__in = request .data )
86- )
82+ skills = Skill .published .for_user (self .request .user ).filter (id__in = request .data )
8783
8884 IntermediateUserSkills .objects .bulk_create (
8985 [IntermediateUserSkills (user_profile = self .user_profile , skill = skill ) for skill in skills ]
@@ -153,6 +149,7 @@ def get(self, request, *args, **kwargs) -> Response:
153149 serialized_data = self .serializer_class (user ).data
154150
155151 serialized_data ["verification_date" ] = self ._get_date_verificated ()
152+ serialized_data ["is_mentor" ] = user .mentored_trajectories .exists ()
156153
157154 return Response (serialized_data , status = status .HTTP_200_OK )
158155
@@ -161,37 +158,26 @@ class SyncUserProfile(generics.GenericAPIView):
161158 """
162159 API-эндпоинт для синхронизации данных пользователя между сервисами Skills и Procollab.
163160 """
161+
164162 permission_classes = [permissions .IsAuthenticated ]
165163
166164 @extend_schema (
167165 summary = "Синхронизация данных профиля skills с сервисом procollab" ,
168166 responses = {
169- status .HTTP_200_OK : OpenApiResponse (
170- description = "Данные успешно синхронизированы" ,
171- examples = {
172- "application/json" : {
173- "message" : "Данные успешно синхронизированы"
174- }
175- }
176- ),
177- status .HTTP_400_BAD_REQUEST : OpenApiResponse (
178- description = "Ошибка при получении данных" ,
179- examples = {
180- "application/json" : {
181- "error" : "Ошибка получения данных от procollab"
182- }
183- }
184- ),
185- status .HTTP_401_UNAUTHORIZED : OpenApiResponse (
186- description = "Неавторизованный доступ" ,
187- examples = {
188- "application/json" : {
189- "error" : "Неавторизованный доступ"
190- }
191- }
192- )
193- },
194- tags = ["Профиль" ]
167+ status .HTTP_200_OK : OpenApiResponse (
168+ description = "Данные успешно синхронизированы" ,
169+ examples = {"application/json" : {"message" : "Данные успешно синхронизированы" }},
170+ ),
171+ status .HTTP_400_BAD_REQUEST : OpenApiResponse (
172+ description = "Ошибка при получении данных" ,
173+ examples = {"application/json" : {"error" : "Ошибка получения данных от procollab" }},
174+ ),
175+ status .HTTP_401_UNAUTHORIZED : OpenApiResponse (
176+ description = "Неавторизованный доступ" ,
177+ examples = {"application/json" : {"error" : "Неавторизованный доступ" }},
178+ ),
179+ },
180+ tags = ["Профиль" ],
195181 )
196182 def post (self , request : HttpRequest , * args , ** kwargs ) -> Response :
197183 """
@@ -217,10 +203,7 @@ def _fetch_procollab_data(self, email: str) -> dict:
217203 email (str): Email пользователя для поиска в Procollab
218204 """
219205 url_name = "dev" if settings .DEBUG else "api"
220- response = requests .get (
221- f"https://{ url_name } .procollab.ru/auth/users/clone-data" ,
222- data = {"email" : email }
223- )
206+ response = requests .get (f"https://{ url_name } .procollab.ru/auth/users/clone-data" , data = {"email" : email })
224207
225208 if response .status_code != status .HTTP_200_OK :
226209 raise ValueError ("Ошибка получения данных от procollab" )
@@ -242,12 +225,12 @@ def _update_user_profile(self, user: CustomUser, data: dict) -> None:
242225 - Аватар профиля (если предоставлен)
243226 """
244227 user_fields = {
245- ' first_name' : data ["first_name" ],
246- ' last_name' : data ["last_name" ],
247- ' patronymic' : data ["patronymic" ],
248- ' city' : data ["city" ],
249- ' age' : data ["birthday" ],
250- ' specialization' : data ["speciality" ]
228+ " first_name" : data ["first_name" ],
229+ " last_name" : data ["last_name" ],
230+ " patronymic" : data ["patronymic" ],
231+ " city" : data ["city" ],
232+ " age" : data ["birthday" ],
233+ " specialization" : data ["speciality" ],
251234 }
252235 for field , value in user_fields .items ():
253236 setattr (user , field , value )
@@ -261,7 +244,7 @@ def _update_user_profile(self, user: CustomUser, data: dict) -> None:
261244 "user" : user ,
262245 "name" : "avatar" ,
263246 "extension" : avatar_url .split ("." )[- 1 ],
264- }
247+ },
265248 )
266249 user_profile .file = file_instance
267250 user_profile .save ()
@@ -270,7 +253,4 @@ def _handle_error(self, error: Exception) -> Response:
270253 """
271254 Обработчик ошибок для эндпоинта синхронизации.
272255 """
273- return Response (
274- {"error" : str (error )},
275- status = status .HTTP_400_BAD_REQUEST
276- )
256+ return Response ({"error" : str (error )}, status = status .HTTP_400_BAD_REQUEST )
0 commit comments