Example #1
0
    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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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
Example #7
0
    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
Example #8
0
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