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)