示例#1
0
    def get(self, request):
        try:
            response = []
            if "contag_id" in request.query_params:
                #Look for a contag by contag id
                user = User.objects.filter(contag=request.query_params["contag_id"])
                if user.exists():
                    user= user[0]
                    user.set_visible_profile(current_user_id=request.user.id)
                    contact = Contact(user=request.user, contact_name=user.name, contact_number=user.mobile_number,
                                      is_on_contag=1, contact_contag_user=user)
                    existing_request = Contact.existing_add_request_exists(from_user=request.user, for_user_id=user.id)
                    response = ContactViewSerializer(instance=[contact], many=True, context={'current_user': request.user.id}).data
                    response[0]["has_existing_add_request"] = existing_request
            else:
                if "user_id" in request.query_params:

                    user = User.objects.get(pk=request.query_params["user_id"])
                    contact = Contact.objects.filter(user=request.user, contact_number=user.mobile_number)

                    if contact.exists():
                        contacts = contact[0]
                        contacts.is_on_contag = True
                        contacts.contact_contag_user = user
                        contacts.is_local_profile_updated = True
                        contacts.save()
                    else:
                        contacts = Contact(user=request.user, contact_name=user.name,
                                      contact_number=user.mobile_number,
                                      is_on_contag=1, contact_contag_user=user)

                    contacts = Contact.set_contag_visibility(contacts=[contacts], current_user_id=request.user.id)
                    response = ContactViewSerializer(instance=contacts, many=True, context={'current_user': request.user.id}).data
                else:
                    contacts = Contact.objects.filter(user=request.user)

                    contacts = Contact.set_contag_visibility(contacts, current_user_id=request.user.id)
                    response = ContactViewSerializer(instance=contacts, many=True, context={'current_user': request.user.id}).data

            return JSONResponse(response, status=200)
        except Exception as e:
            print traceback.format_exc(e)
            beam(e, request)
            return JSONResponse(ERROR_MESSAGE, status=200)