def retrieve(self, request, *args, **kwargs): ip = request.META.get('REMOTE_ADDR') auth_json = ModifyAuthJson() return Response({ 'success': True, 'data': { 'source': { 'server': auth_json.get_base_url('source'), 'user': auth_json.get_username('source') }, 'target': { 'server': auth_json.get_base_url('target'), 'user': auth_json.get_username('target') } } }, status=status.HTTP_200_OK)
def re_auth(server_type): auth_json = ModifyAuthJson() json_file_data = auth_json.get_auth_data() response_status, cookies, response_body = authenticate_company( base_url=auth_json.get_base_url(server_type), username=auth_json.get_username(server_type), password=auth_json.get_password(server_type), ) if response_status != 200: raise Exception('Not able to authenticate source server') json_file_data[server_type]['cookies'] = cookies.get_dict() if server_type == 'target': json_file_data[server_type]['cookies']['XSRF-TOKEN'] = get_account( base_url=auth_json.get_base_url(server_type), cookies=cookies.get_dict()) auth_json.set_auth_data(json_file_data)
def retrieve(self, request, *args, **kwargs): re_auth('target') auth_json = ModifyAuthJson() target_headers = auth_json.get_xsrf_header('target') target_headers['Content-Type'] = "application/json" response = requests.post(auth_json.get_base_url('target') + 'v1/app/rest/cities', data=json.dumps({ 'name': 'Default City', 'enabled': True }), headers=target_headers, cookies=auth_json.get_cookies('target')) city_id = '' if response.status_code != 200: if 'City name already exist' not in str(response.content): return Response( { 'success': False, 'data': { 'request': 'add default city', 'server': auth_json.get_base_url('target'), 'body': json.loads(response.content), 'status': response.status_code } }, status=response.status_code) else: response = requests.get( url=auth_json.get_base_url('target') + "v1/app/rest/cities", cookies=auth_json.get_cookies('target')) if response.status_code != 200: return Response( { 'success': False, 'data': { 'request': 'get cities', 'server': auth_json.get_base_url('target'), 'body': json.loads(response.content), 'status': response.status_code } }, status=response.status_code) cities = json.loads(response.content) if 'Default City' in [city['name'] for city in cities]: city_id = [ city['id'] for city in cities if city['name'] == 'Default City' ][0] else: city_id = (json.loads(response.content))['id'] response = requests.get(url=auth_json.get_base_url('target') + 'v1/app/rest/hubs/pageable', cookies=auth_json.get_cookies('target'), params={ 'city_id': city_id, 'pageNo': '0', 'recordsPerPage': '500', 'sortOn': 'id', 'sortType': 'DESC' }, headers=target_headers) should_add_branch = False branch_id = '' if response.status_code != 200 and response.status_code != 204: return Response( { 'success': False, 'data': { 'request': 'get branch of Default City', 'server': auth_json.get_base_url('target'), 'body': json.loads(response.content), 'status': response.status_code } }, status=response.status_code) elif response.status_code == 204: should_add_branch = True elif response.status_code == 200: branches = json.loads(response.content)['content'] if 'DefaultBranch' not in [branch['code'] for branch in branches]: should_add_branch = True else: branch_id = [ branch['id'] for branch in branches if branch['code'] == 'DefaultBranch' ][0] if should_add_branch: response = requests.post(auth_json.get_base_url('target') + 'v1/app/rest/hubs', data=json.dumps({ "defaultNewUI": False, "name": "Default Branch", "code": "DefaultBranch", "enabled": True, "timeZone": None, "latitude": "0", "longitude": "0", "cityId": city_id }), headers=target_headers, cookies=auth_json.get_cookies('target')) if response.status_code != 200: return Response( { 'success': False, 'data': { 'request': 'add branch', 'server': auth_json.get_base_url('target'), 'body': json.loads(response.content), 'status': response.status_code } }, status=response.status_code) branch_id = json.loads(response.content)['id'] response = requests.get(auth_json.get_base_url('target') + 'v1/app/rest/users', params={ 'activatedUser': True, 'pageNo': 0, 'query': '', 'recordsPerPage': 10, 'sortOn': 'id', 'sortType': 'ASC', 'userTypeId': 1 }, cookies=auth_json.get_cookies('target')) if response.status_code != 200: return Response( { 'success': False, 'data': { 'request': 'get admin users', 'server': auth_json.get_base_url('target'), 'body': json.loads(response.content), 'status': response.status_code } }, status=response.status_code) response_body = json.loads(response.content) admin_user = [ user for user in response_body['content'] if user['login'] == auth_json.get_username('target') ][0] payload = { 'data': (None, json.dumps({ "id": admin_user['id'], "authUserId": None, "login": admin_user['login'], "firstName": admin_user['firstName'], "lastName": admin_user['lastName'], "email": admin_user['email'], "mobileNumber": admin_user['mobileNumber'], "employeeCode": admin_user['employeeCode'], "userTypeId": 1, "cityId": city_id, "hubId": branch_id, "activated": True, "autoPushMailActivated": admin_user['autoPushMailActivated'], "serviceProviderCode": admin_user['serviceProviderCode'], "profileImage": admin_user['profileImage'], "routingJson": admin_user['routingJson'], "icdr": admin_user['icdr'] })), 'companyId': (None, auth_json.get_company_id('target')) } del target_headers['Content-Type'] response = requests.post(auth_json.get_base_url('target') + 'v1/app/rest/users/', cookies=auth_json.get_cookies('target'), headers=target_headers, files=payload) if response.status_code != 200: return Response( { 'success': False, 'data': { 'request': 'assign city and branch to user', 'server': auth_json.get_base_url('target'), 'body': json.loads(response.content), 'status': response.status_code } }, status=response.status_code) return Response( { 'success': True, 'message': 'city assigned to admin successfully' }, status=status.HTTP_200_OK)