def get_pbx_sip(user): """ Get sip number :param user: user :return: sip """ method = settings.API_URLS['api']['sip'] # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored params = ApiParams() url = params.get_request_string(method) response = requests.get( url, headers={ 'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key)) }) content = response.content if response.ok: sips = json.loads(content)['sips'] sip = int( filter(lambda s: s['display_name'] == 'SIP', sips)[0]['id']) return sip logger = LogService() logger.error(Code.SIP_GETTING_ERR, data=json.loads(content), status_code=response.status_code) return None
def get_call_cost(user, to): """ Get the cost of the call :param to: target phone number :return: """ method = settings.API_URLS['api']['call_cost'] # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored params = ApiParams({'number': to}) url = params.get_request_string(method) response = requests.get( url, headers={ 'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key)) }) content = response.content if response.ok: return json.loads(content)['info'] logger = LogService() logger.error(Code.GET_CALL_COST_ERR, data=json.loads(content), status_code=response.status_code) return None
def request_callback(user, from_number, to_number): """ Request the callback :param user: user instance :param form: prom number :param to: to number :return: """ method = settings.API_URLS['api']['request_callback'] # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored params = ApiParams({'from': from_number, 'to': to_number}) url = params.get_request_string(method) response = requests.get(url, headers={'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key))}) content = response.content if response.ok: callback = DBService.register_callback(user.userprofile, from_number, to_number) if callback: return json.loads(content) logger = LogService() logger.error(Code.REQUEST_CALLBACK_ERR, data=json.loads(content), status_code=response.status_code) return None
def get_statistic(request, template): """ Controller to get test calls file :param request: HTTP GET request :param template: html template :return: json format """ params = ApiParams(request.GET or None) update_res = PBXDataService.update_calls_list(params, request.user) logger.info(Code.UCLEXE, is_success=update_res.is_success, status_code=update_res.status_code, message=update_res.message, data=update_res.data) filter_params = CallsFilterParams(request.GET) calls = [ CallRecord(call=call) for call in request.user.userprofile.call_set.filter( **filter_params.params).exclude(**filter_params.exclude_params). filter(filter_params.call_type_query).order_by('date') ] calls_stat = CallsStat(calls) # send_mail.apply_async((MailMessage(settings.INFO_EMAIL, 'Попытка обновления статы', 'mail_stat_updated.html', {'username': request.user.username}, request.user.email),), countdown=60) return render_to_response(template, { 'calls': calls, 'calls_stat': calls_stat }, context_instance=RequestContext(request))
def get_call_cost(user, to): """ Get the cost of the call :param to: target phone number :return: """ method = settings.API_URLS['api']['call_cost'] # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored params = ApiParams({'number': to}) url = params.get_request_string(method) response = requests.get(url, headers={'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key))}) content = response.content if response.ok: return json.loads(content)['info'] logger = LogService() logger.error(Code.GET_CALL_COST_ERR, data=json.loads(content), status_code=response.status_code) return None
def get_pbx_sip(user): """ Get sip number :param user: user :return: sip """ method = settings.API_URLS['api']['sip'] # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored params = ApiParams() url = params.get_request_string(method) response = requests.get(url, headers={'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key))}) content = response.content if response.ok: sips = json.loads(content)['sips'] sip = int(filter(lambda s: s['display_name'] == 'SIP', sips)[0]['id']) return sip logger = LogService() logger.error(Code.SIP_GETTING_ERR, data=json.loads(content), status_code=response.status_code) return None
def request_callback(user, from_number, to_number): """ Request the callback :param user: user instance :param form: prom number :param to: to number :return: """ method = settings.API_URLS['api']['request_callback'] # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored params = ApiParams({'from': from_number, 'to': to_number}) url = params.get_request_string(method) response = requests.get( url, headers={ 'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key)) }) content = response.content if response.ok: callback = DBService.register_callback(user.userprofile, from_number, to_number) if callback: return json.loads(content) logger = LogService() logger.error(Code.REQUEST_CALLBACK_ERR, data=json.loads(content), status_code=response.status_code) return None