Example #1
0
 def test_invalidcontact_profile_create(self):
     request = HttpRequest()
     request.user = self.user
     contact_view_set = storeContactsViewSet()
     request.data = {}
     request.data['contact_profile_image'] = create_image_file()
     request.data['contact_id'] = 5000
     response = contact_view_set.upload_contact_profile(request)
     self.assertEqual(response.status_code, 400, "Invalid Contact id")
Example #2
0
 def test_contact_profile_create(self):
     request = HttpRequest()
     request.user = self.user
     contact_view_set = storeContactsViewSet()
     request.data = {}
     request.data['contact_profile_image'] = create_image_file()
     request.data['contact_id'] = self.contact.id
     request.data['user_id'] = self.contact.id
     response = contact_view_set.upload_contact_profile(request)
     self.assertEqual(response.status_code, 200)
Example #3
0
    def list(self, request):
        try:

            # Fetch the all users contact
            queryset_contact_without_bcard = self.queryset.filter(
                businesscard_id__isnull=True).order_by("user_id")
            queryset_contact_have_bcard = self.queryset.filter(
                businesscard_id__isnull=False).order_by("user_id")
            queryset_serializer = ContactsSerializer(
                queryset_contact_have_bcard, many=True)

            if queryset_serializer.data is not None:
                contacts_copy = queryset_serializer.data
                match_contact_insert = []
                store_object = storeContactsViewSet()
                for value in queryset_contact_without_bcard:

                    iterator = iter(contacts_copy)
                    try:
                        while True:
                            value_copy = iterator.next()
                            if value.user_id.id != value_copy["user_id"]:

                                if value.bcard_json_data and value_copy[
                                        "bcard_json_data"]:
                                    # print
                                    # value.user_id.id,value_copy["user_id"]
                                    try:
                                        result = store_object.find_duplicate(
                                            value.bcard_json_data, value_copy["bcard_json_data"])
                                    except ValueError as e:
                                        logger.error(
                                            "UpdateContactLinkStatusCron: contacts have bad json : {},{}, {}".format(
                                                value.id, value_copy["id"], e))
                                        # print result
                                else:
                                    result = ''
                                # print result
                                if result:
                                    # Change the link status then insert into MatchContact Model
                                    # related field is not working
                                    # value.folder_contact
                                    try:
                                        folder_contact = FolderContact.objects.get(
                                            contact_id=value.id, user_id=value.user_id)
                                        if folder_contact.link_status == 0:
                                            folder_contact.link_status = 1
                                            folder_contact.save()
                                            match_contact_insert.append(
                                                {
                                                    "user_id": value.user_id.id,
                                                    "folder_contact_id": folder_contact.id,
                                                    "businesscard_id": value_copy['businesscard_id']})
                                    except:
                                        pass
                                    # match_contact_insert = MatchContactSerializer({''})
                                # pass
                    except StopIteration:
                        pass

                if match_contact_insert:
                    for items in match_contact_insert:
                        match_contact_serializer = MatchContactSerializer(
                            data=items)
                        if match_contact_serializer.is_valid():
                            match_contact_serializer.save()
                        else:

                            pass

                    if match_contact_insert:
                        #                      match_contact_insert = MatchContactSerializer(data=match_contact_insert,many=True)
                        #                      if match_contact_insert.is_valid():
                        #                         match_contact_insert.save()
                        #                      else:
                        # return
                        # CustomeResponse(match_contact_insert.errors,status=status.HTTP_400_BAD_REQUEST,validate_errors=1)
                        for items in match_contact_insert:
                            match_contact_serializer = MatchContactSerializer(
                                data=items)
                            if match_contact_serializer.is_valid():
                                match_contact_serializer.save()
                            else:
                                pass
                # Note : TODO we will change the order of execution  of
                # find_duplicate
                return CustomeResponse(
                    {"msg": "run successfully"}, status=status.HTTP_200_OK)

        except Exception:
            logger.critical(
                "Caught exception in {}".format(__file__),
                exc_info=True
            )
            ravenclient.captureException()