def post(self, request, user_id): data = request.data.copy() data['user'] = user_id serializer = UserProfileSerializer(data=data, context={'request': request}) if serializer.is_valid(): serializer.save() if data.get('is_employed') == 'true': print('here') WorkExperience.objects.create( user=self.get_user(serializer.data['id']), organization_name=f"{data['organization_name']}", position=data['position'], start_date=data['start_date'], end_date=data['end_date']) SocialProfile.objects.create( user=self.get_user(serializer.data['id']), tagline= f"{data['position']} at {data['organization_name']}", current_industry=self.get_industry(serializer.data['id'])) return Response(serializer.data, status=status.HTTP_201_CREATED) Education.objects.create( user=self.get_user(serializer.data['id']), organization_name=f"{data['organization_name']}", start_date=data['start_date'], end_date=data['end_date']) SocialProfile.objects.create( user=self.get_user(serializer.data['id']), tagline=f"{data['position']} at {data['organization_name']}", current_academia=self.get_academia(serializer.data['id'])) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_201_CREATED)
def patch(self, request, user_id=None): try: data = request.data.copy() profile_id = data['profile_id'] user = UserProfile.objects.get(id=profile_id) except: raise Http404 phone_linked = data.get('phone_number') queryset = OTPModel.objects.filter(phone_linked=phone_linked) if not queryset.exists(): email_linked = User.objects.get(profile=user).email OTP_create_send(email_linked, phone_linked) serializer = UserProfileSerializer(user, data=data, partial=True, context={'request': request}) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_202_ACCEPTED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response({'detail': 'Phone number already in use.'}, status=status.HTTP_403_FORBIDDEN)
def to_representation(self, instance): response = super().to_representation(instance) response['sender'] = UserProfileSerializer( instance.sender, context={ 'request': self.context.get('request') }).data response['receiver'] = UserProfileSerializer( instance.receiver, context={ 'request': self.context.get('request') }).data return response
def get(self, request, profile_id): try: user = UserProfile.objects.get(id=profile_id) except: raise Http404 serializer = UserProfileSerializer(user, context={'request': request}) return Response(serializer.data, status=status.HTTP_200_OK)
def to_representation(self,instance): response = super().to_representation(instance) response['user'] = UserProfileSerializer(instance.user, context = {'request': self.context.get('request')}).data['id'] response['top_skills'] = json.decoder.JSONDecoder().decode(instance.top_skills) # Temporary (remove later) response['skills_list'] = json.decoder.JSONDecoder().decode(instance.skills_list) return response
def to_representation(self, instance): response = super().to_representation(instance) response['checklists'] = ChecklistSerializer( instance.checklists, many=True, context={ 'request': self.context.get('request') }).data response['attachment_links'] = AttachedLinkSerializer( instance.attached_links, many=True, context={ 'request': self.context.get('request') }).data response['attachment_files'] = AttachedFileSerializer( instance.attached_files, many=True, context={ 'request': self.context.get('request') }).data response['checklists'] = ChecklistSerializer( instance.checklists, many=True, context={ 'request': self.context.get('request') }).data response['members'] = UserProfileSerializer( instance.members, many=True, context={ 'request': self.context.get('request') }).data if instance.list.board.preference.voting_visible: response['votes'] = UserProfileSerializer( instance.voted_by, many=True, context={ 'request': self.context.get('request') }).data else: response['votes'] = None response['no_of_votes'] = instance.voted_by.count() response['label'] = LabelSerializer(instance.label, many=True).data return response
def put(self, request, profile_id=None): user = UserProfile.objects.get(id=profile_id) data = request.data.copy() try: del data['current_industry'] except: pass try: del data['current_academia'] except: pass try: del data['phone_number'] except: pass try: del data['bio'] except: pass profile_serializer = UserProfileSerializer( user, data=data, partial=True, context={'request': request}) if profile_serializer.is_valid(): profile_serializer.save() banner_serializer = SocialProfileSerializer( user.social_profile, data=data, partial=True, context={'request': request}) if banner_serializer.is_valid(): banner_serializer.save() data = {**profile_serializer.data, **banner_serializer.data} return Response(data, status=status.HTTP_202_ACCEPTED) return Response(banner_serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(profile_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def Profile(request, username, format=None): """ Retrieve, update the profile i.e profile picture and access token. """ try: user = User.objects.get(username=username) rkmender = Rkmender.objects.get(user_id = user.id) except User.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = UserProfileSerializer(rkmender) return Response(serializer.data) elif request.method == 'PUT': serializer = UserProfileSerializer(rkmender, data=request.DATA, partial = True) if serializer.is_valid(): serializer.save() return Response(serializer.data) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def to_representation(self, instance): response = super().to_representation(instance) response['author'] = UserProfileSerializer( instance.author, context={ 'request': self.context.get('request') }).data response['tag'] = LabelSerializer(instance.tag).data response['upvotes'] = instance.upvotees.count() response['downvotes'] = instance.downvotees.count() response['comment_count'] = instance.comments.count() response['bookmark_count'] = instance.bookmark.count() return response
def to_representation(self, instance): response = super().to_representation(instance) if instance.team: response['team'] = { 'id': instance.team.id, 'name': instance.team.name } response['lists'] = ListSerializer(instance.lists, many=True, context={ 'request': self.context.get('request') }).data response['admins'] = UserProfileSerializer( instance.admins, many=True, context={ 'request': self.context.get('request') }).data response['members'] = UserProfileSerializer( instance.members, many=True, context={ 'request': self.context.get('request') }).data response['preference'] = PreferenceSerializer(instance.preference).data user = self.context.get('request').user.profile if user in instance.starred_by.all(): response['starred'] = True else: response['starred'] = False if user in instance.watched_by.all(): response['watching'] = True else: response['watching'] = False return response
def to_representation(self, instance): response = super().to_representation(instance) response['document'] = DocumentSerializer(instance.document,context = {'request' : self.context.get('request')}).data response['commenter'] = UserProfileSerializer(instance.commenter,context = {'request' : self.context.get('request')}).data return response
def to_representation(self, instance): response = super().to_representation(instance) response['uploader'] = UserProfileSerializer(instance.uploader,context = {'request' : self.context.get('request')}).data response['college'] = CollegeSerializer(instance.college, context = {'request' : self.context.get('request')}).data return response
def to_representation(self,instance): response = super().to_representation(instance) response['Type_of_team'] = Team.Type(instance.Type_of_team).label response['members'] = UserProfileSerializer(instance.members,many=True,context={'request':self.context.get('request')}).data return response