Example #1
0
            def dump_wrapper(*args, **kwargs):
                # pylint: disable=missing-docstring
                response = func(*args, **kwargs)
                extra_headers = None
                if response is None:
                    if model is not None:
                        raise ValueError(
                            "Response cannot not be None with HTTP status %d" %
                            code)
                    return flask.Response(status=code)
                elif isinstance(response, flask.Response) or model is None:
                    return response
                elif isinstance(response, tuple):
                    response, _code, extra_headers = unpack(response)
                else:
                    _code = code

                # Modify by Henry, response deal
                if HTTPStatus(_code) is code:
                    if isinstance(response, (int, bool, str, float)):
                        return response, _code, extra_headers
                    try:
                        response = model.dump(response).data
                    #except AttributeError as e:
                    except Exception as e:
                        return response, _code, extra_headers
                return response, _code, extra_headers
Example #2
0
 def wrapper(*args, **kwargs):
     resp = f(*args, **kwargs)
     if isinstance(resp, tuple):
         data, code, headers = unpack(resp)
         return (self.wrap_response_with_data(data,
                                              code), code, headers)
     else:
         return self.wrap_response_with_data(resp)
Example #3
0
    def wrapper(*args, **kwargs):
        response = method(*args, **kwargs)
        logger.error(response)
        if isinstance(response, BaseResponse):
            data, code, headers = unpack(response)
        else:
            data, code, headers = response
        logger.error(data)
        data = code_message_data_formatter(**data)

        return data, code, headers
Example #4
0
        def cache_func(*args, **kwargs):

            resp, code, headers = unpack(view(*args, **kwargs))
            now = datetime.datetime.now()

            headers['Last-Modified'] = format_date_time(time.mktime(now.timetuple()))

            if expires is None:
                headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0'
            else:
                headers['Cache-Control'] = 'private, max-age={}'.format(expires)

            return resp, code, headers
Example #5
0
        def cache_func(*args, **kwargs):

            resp, code, headers = unpack(view(*args, **kwargs))
            now = datetime.datetime.now()

            headers['Last-Modified'] = format_date_time(time.mktime(now.timetuple()))

            if expires is None:
                headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0'
            else:
                headers['Cache-Control'] = 'private, max-age={}'.format(expires)

            return resp, code, headers
Example #6
0
 def wrapper(*args, **kwargs):
     resp = f(*args, **kwargs)
     mask = self.mask
     if has_app_context():
         mask_header = current_app.config['RESTPLUS_MASK_HEADER']
         mask = request.headers.get(mask_header) or mask
     if isinstance(resp, tuple):
         data, code, headers = unpack(resp)
         return (marshal(data, self.fields, self.envelope,
                         self.skip_none, mask,
                         self.ordered), code, headers)
     else:
         return marshal(resp, self.fields, self.envelope,
                        self.skip_none, mask, self.ordered)
Example #7
0
 def wrapper(*args, **kwargs):
     resp = f(*args, **kwargs)
     if not self.strict and (isinstance(resp, Response) or
                             isinstance(resp, FlaskResponse)):
         return resp
     mask = self.mask
     if has_app_context():
         mask_header = current_app.config['RESTPLUS_MASK_HEADER']
         mask = request.headers.get(mask_header) or mask
     if isinstance(resp, tuple):
         data, code, headers = unpack(resp)
         return marshal(data, self.fields, self.envelope, mask), code, headers
     else:
         return marshal(resp, self.fields, self.envelope, mask)
Example #8
0
        def cache_func(*args, **kwargs):

            resp, code, headers = unpack(view(*args, **kwargs))
            now = datetime.datetime.now()

            headers['Last-Modified'] = format_date_time(
                time.mktime(now.timetuple()))

            if expires is None:
                headers[
                    'Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0'
                headers['Expires'] = '-1'
            else:
                expires_time = now + datetime.timedelta(seconds=expires)

                headers['Cache-Control'] = 'public'
                headers['Expires'] = format_date_time(
                    time.mktime(expires_time.timetuple()))

            return resp, code, headers
Example #9
0
            def dump_wrapper(*args, **kwargs):
                # pylint: disable=missing-docstring
                response = func(*args, **kwargs)
                extra_headers = None

                if response is None:
                    if model is not None:
                        raise ValueError(
                            "Response cannot not be None with HTTP status %d" %
                            code)
                    return flask.Response(status=code)
                elif isinstance(response, flask.Response) or model is None:
                    return response
                elif isinstance(response, tuple):
                    response, _code, extra_headers = unpack(response)
                else:
                    _code = code

                if HTTPStatus(_code) is code:
                    response = model.dump(response).data
                return response, _code, extra_headers
Example #10
0
 def test_single_value(self):
     data, code, headers = utils.unpack('test')
     assert data == 'test'
     assert code == 200
     assert headers == {}
Example #11
0
 def test_value_code(self):
     data, code, headers = utils.unpack(('test', 201))
     assert data == 'test'
     assert code == 201
     assert headers == {}
Example #12
0
 def test_single_value_with_default_code(self):
     data, code, headers = utils.unpack('test', 500)
     self.assertEqual(data, 'test')
     self.assertEqual(code, 500)
     self.assertEqual(headers, {})
Example #13
0
 def test_single_value(self):
     data, code, headers = utils.unpack('test')
     self.assertEqual(data, 'test')
     self.assertEqual(code, 200)
     self.assertEqual(headers, {})
Example #14
0
 def test_too_many_values(self):
     with self.assertRaises(ValueError):
         utils.unpack((None, None, None, None))
Example #15
0
 def test_too_many_values(self):
     with pytest.raises(ValueError):
         utils.unpack((None, None, None, None))
Example #16
0
 def test_value_code_headers(self):
     data, code, headers = utils.unpack(('test', 201, {'Header': 'value'}))
     assert data == 'test'
     assert code == 201
     assert headers == {'Header': 'value'}
Example #17
0
 def test_single_value_with_default_code(self):
     data, code, headers = utils.unpack('test', 500)
     assert data == 'test'
     assert code == 500
     assert headers == {}
Example #18
0
 def test_single_value(self):
     data, code, headers = utils.unpack('test')
     assert data == 'test'
     assert code == 200
     assert headers == {}
Example #19
0
 def test_too_many_values(self):
     with pytest.raises(ValueError):
         utils.unpack((None, None, None, None))
Example #20
0
 def test_value_headers_default_code(self):
     data, code, headers = utils.unpack(('test', None, {'Header': 'value'}))
     assert data == 'test'
     assert code == 200
     assert headers == {'Header': 'value'}
Example #21
0
 def test_value_code_headers(self):
     data, code, headers = utils.unpack(('test', 201, {'Header': 'value'}))
     assert data == 'test'
     assert code == 201
     assert headers == {'Header': 'value'}
Example #22
0
 def test_value_code(self):
     data, code, headers = utils.unpack(('test', 201))
     assert data == 'test'
     assert code == 201
     assert headers == {}
Example #23
0
 def test_value_headers_default_code(self):
     data, code, headers = utils.unpack(('test', None, {'Header': 'value'}))
     self.assertEqual(data, 'test')
     self.assertEqual(code, 200)
     self.assertEqual(headers, {'Header': 'value'})
Example #24
0
 def test_value_code(self):
     data, code, headers = utils.unpack(('test', 201))
     self.assertEqual(data, 'test')
     self.assertEqual(code, 201)
     self.assertEqual(headers, {})
Example #25
0
 def test_value_headers_default_code(self):
     data, code, headers = utils.unpack(('test', None, {'Header': 'value'}))
     assert data == 'test'
     assert code == 200
     assert headers == {'Header': 'value'}
Example #26
0
 def test_value_code_headers(self):
     data, code, headers = utils.unpack(('test', 201, {'Header': 'value'}))
     self.assertEqual(data, 'test')
     self.assertEqual(code, 201)
     self.assertEqual(headers, {'Header': 'value'})
Example #27
0
 def test_single_value_with_default_code(self):
     data, code, headers = utils.unpack('test', 500)
     assert data == 'test'
     assert code == 500
     assert headers == {}