Пример #1
0
def get_user() -> Response:
    @action_logging
    def _log_get_user(*, user_id: str) -> None:
        pass  # pragma: no cover

    try:
        user_id = get_query_param(request.args, 'user_id')
        url = '{0}{1}/{2}'.format(app.config['METADATASERVICE_BASE'],
                                  USER_ENDPOINT, user_id)

        _log_get_user(user_id=user_id)

        response = request_metadata(url=url)
        status_code = response.status_code

        if status_code == HTTPStatus.OK:
            message = 'Success'
        else:
            message = 'Encountered error: failed to fetch user with user_id: {0}'.format(
                user_id)
            logging.error(message)

        payload = {
            'msg': message,
            'user': dump_user(load_user(response.json())),
        }
        return make_response(jsonify(payload), status_code)
    except Exception as e:
        message = 'Encountered exception: ' + str(e)
        logging.exception(message)
        payload = jsonify({'msg': message})
        return make_response(payload, HTTPStatus.INTERNAL_SERVER_ERROR)
Пример #2
0
def current_user() -> Response:
    try:
        if app.config['AUTH_USER_METHOD']:
            user = app.config['AUTH_USER_METHOD'](app)
        else:
            raise Exception('AUTH_USER_METHOD is not configured')

        url = '{0}{1}/{2}'.format(app.config['METADATASERVICE_BASE'], USER_ENDPOINT, user.user_id)

        response = request_metadata(url=url)
        status_code = response.status_code
        if status_code == HTTPStatus.OK:
            message = 'Success'
        else:
            message = 'Encountered error: failed to fetch user with user_id: {0}'.format(user.user_id)
            logging.error(message)

        payload = {
            'msg': message,
            'user': dump_user(load_user(response.json()))
        }
        return make_response(jsonify(payload), status_code)
    except Exception as e:
        message = 'Encountered exception: ' + str(e)
        logging.exception(message)
        payload = jsonify({'msg': message})
        return make_response(payload, HTTPStatus.INTERNAL_SERVER_ERROR)
 def test_set_user_id_from_email(self) -> None:
     """
     Deserialization and serialization sets user_id from email if no user_id
     :return:
     """
     with app.test_request_context():
         self.assertEqual(dump_user(load_user({'email': '*****@*****.**'})).get('user_id'), '*****@*****.**')
 def test_profile_url(self) -> None:
     """
     Deserialization and serialization sets profile_url from app.config['GET_PROFILE_URL']
     if no profile_url provided'
     :return:
     """
     with app.test_request_context():
         self.assertEqual(dump_user(load_user({'email': '*****@*****.**'})).get('profile_url'), 'testUrl')
 def test_set_display_name_from_email(self) -> None:
     """
     Deserialization and serialization sets display_name from email if no display_name and
     full_name is None
     :return:
     """
     with app.test_request_context():
         self.assertEqual(dump_user(load_user({'email': '*****@*****.**'})).get('display_name'), '*****@*****.**')
 def test_set_display_name_from_email_if_full_name_empty(self) -> None:
     """
     Deserialization and serialization sets display_name from email if no display_name and
     full_name is ''
     :return:
     """
     test_user = {
         'email': '*****@*****.**',
         'full_name': '',
     }
     with app.test_request_context():
         self.assertEqual(dump_user(load_user(test_user)).get('display_name'), '*****@*****.**')
 def test_set_display_name_from_full_name(self) -> None:
     """
     Deserialization and serialization sets display_name from full_name if no display_name and
     full_name is a non-empty string
     :return:
     """
     test_user = {
         'email': '*****@*****.**',
         'full_name': 'Test User',
     }
     with app.test_request_context():
         self.assertEqual(dump_user(load_user(test_user)).get('display_name'), 'Test User')
Пример #8
0
 def _map_user_result(result: Dict) -> Dict:
     user_result = dump_user(load_user(result))
     user_result['type'] = 'user'
     return user_result
Пример #9
0
def _map_user_object_to_schema(u: Dict) -> Dict:
    return dump_user(load_user(u))