Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
 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
Esempio n. 4
0
 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)
Esempio n. 5
0
 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
Esempio n. 6
0
 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
Esempio n. 7
0
    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)
Esempio n. 8
0
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)
Esempio n. 9
0
 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
Esempio n. 10
0
 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
Esempio n. 11
0
 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
Esempio n. 12
0
 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
Esempio n. 13
0
 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