def __call__(self, request): '''Handler method for middleware Args: request: Django's request object. Returns: Response passed by next middleware or view. Raises: NotFound: if route could not be found. Forbidden: if logged in user does not have necessary permissions to access the resource. ''' response_json, response_content, response_code, error = make_request( url=settings.AUTHORIZATION_URL.format(name=request.url_info["view_name"], method=request.method), method='GET', headers={'Authorization': request.META.get('HTTP_AUTHORIZATION')} ) if int(response_code) == 404: raise NotFound elif int(response_code)/100 != 2: raise Forbidden response = self.get_response(request) return response
def fetch_specialities(auth_token, speciality): api_config = InNoteConfig.objects.get_config('FetchSpecialities' or {}) response_json, response_content, response_code, error = make_request( url=api_config.get('url').format(speciality=speciality), method=api_config.get('method'), headers={'Authorization': (auth_token or '')} ) return response_json
def fetch_districts(state_code): url = base_url + "/admin/location/districts/{state_code}" response_json, response_content, response_code, error = make_request( url=url.format(state_code=state_code), method='GET', timeout=5 ) if not int(response_code) == 200: raise InternalServerError else: return response_json
def fetch_calender_by_district(url_params): url = base_url + "/appointment/sessions/calendarByDistrict" print(url) response_json, response_content, response_code, error = make_request( url=url, method='GET', timeout=5, params=url_params ) print(url) if not int(response_code) == 200: raise InternalServerError else: return response_json
def search_provider(auth_token, speciality, patient_zipcode): api_config = InNoteConfig.objects.get_config('SearchProvider' or {}) response_json, response_content, response_code, error = make_request( url=api_config.get('url').format(speciality=speciality,patient_zipcode=patient_zipcode), method=api_config.get('method'), headers={'Authorization': (auth_token or '')} ) if int(response_code) == 401: raise Unauthorized elif int(response_code) == 403: raise Forbidden elif response_code is None or int(response_code/100) != 2: raise InternalServerError else: return response_json
def create_referral(auth_token, data): api_config = InNoteConfig.objects.get_config('CreateReferral' or {}) response_json, response_content, response_code, error = make_request( url=api_config.get('url'), method=api_config.get('method'), headers={'Authorization': (auth_token or '')}, json=data ) response_json = response_json.get('message') if int(response_code) == 401: raise Unauthorized elif int(response_code) == 403: raise Forbidden elif response_code is None or int(response_code/100) != 2: raise InternalServerError else: return response_json
def __call__(self, request): '''Handler method for middleware Args: request: Django's request object. Returns: Response passed by next middleware or view. Raises: Unauthorized http error if request could not be authorized. ''' setattr(request, 'user_data', {}) try: auth_token = request.META.get('HTTP_AUTHORIZATION') except Exception: raise Unauthorized response_json, response_content, response_code, error = make_request( url=settings.AUTHENTICATION_URL, method='GET', headers={'Authorization': auth_token}) if int(response_code) / 100 != 2: raise Unauthorized if not response_json.get('data', {}).get('user_id'): raise Unauthorized( 'The request could not be authorized. The sent token could not be validated.' ) setattr(request, 'user_data', response_json.get('data', {})) response = self.get_response(request) return response
def fetch_referrals(auth_token, patient_id): api_config = InNoteConfig.objects.get_config('FetchReferral' or {}) response_json, response_content, response_code, error = make_request( url=api_config.get('url'), method=api_config.get('method'), headers={'Authorization': (auth_token or '')} ) response_json = response_json.get('body','') error_message = response_json.get('error','') if int(response_code) == 401: raise Unauthorized elif int(response_code) == 403: raise Forbidden elif response_code is None or int(response_code/100) != 2: raise InternalServerError else: if 'message' in error_message: return error_message['message'] return response_json