Example #1
0
    def dispatch(self, request: HttpRequest, *args, **kwargs):
        self.request = request
        try:
            result = super().dispatch(request, *args, **kwargs)
            if isinstance(result, HttpResponse):
                return result
            http_code = self.http_code
            api_result = dict(
                data=result,
            )
        except rmr.Error as error:

            response_logger.log(
                error.level,
                '%(code)s: %(message)s',
                dict(message=error.message, code=error.code),
            )

            http_code = error.http_code
            api_result = dict(
                error=dict(
                    code=error.code,
                    description=error.message,
                ),
            )

        response = JsonResponse(api_result, status=http_code, safe=False)
        response.setdefault('Content-Length', len(response.content))
        return response
Example #2
0
    def dispatch(self, request: HttpRequest, *args, **kwargs):
        self.request = request
        try:
            api_result = super().dispatch(request, *args, **kwargs)
            if isinstance(api_result, HttpResponse):
                return api_result
            http_code = self.http_code
        except rmr.Error as error:

            response_logger.log(
                error.level,
                '%(code)s: %(message)s',
                dict(message=error.message, code=error.code),
            )

            http_code = error.http_code
            api_result = dict(
                error=dict(
                    code=error.code,
                    description=error.message,
                ),
            )

        response = JsonResponse(api_result, status=http_code, safe=False)
        response.setdefault('Content-Length', len(response.content))
        return response
Example #3
0
def api_ratios(request):
    s = _latest_snapshot()
    response = JsonResponse({
        "current_credits_per_token":
        s.rebasing_credits_per_token,
        "next_credits_per_token":
        Decimal(1.0) / s.rebasing_credits_ratio,
    })
    response.setdefault("Access-Control-Allow-Origin", "*")
    return _cache(30, response)
Example #4
0
def api_apr_trailing(request):
    apr = _get_trailing_apr()
    if apr < 0:
        apr = "0"
    apy = _get_trailing_apy()
    if apy < 0:
        apy = 0
    response = JsonResponse({"apr": apr, "apy": apy})
    response.setdefault("Access-Control-Allow-Origin", "*")
    return _cache(120, response)
Example #5
0
    def __call__(self, request):

        # Decode body data for POST, PUT and PATCH
        if request.method in ['POST', 'PUT', 'PATCH'] and len(request.body) > 0:
            request.json = json.loads(request.body.decode('utf-8'))
        else:
            request.json = {}

        # Executable the standard Django view
        response = self.get_response(request)
        if not isinstance(response, JsonResponse) and response.status_code != 200:
            response = JsonResponse({ 'error': 'internalError', 'message': str(response.content) }, status=response.status_code)

        # Set no cache header if one hasn't been set
        response.setdefault('Cache-Control', 'no-cache')
        return response
Example #6
0
def api_apr_history(request):
    apr = _get_trailing_apr()
    if apr < 0:
        apr = "0"
    apy = _get_trailing_apy()
    if apy < 0:
        apy = 0
    latest_block_number = _latest_snapshot_block_number()
    days = _daily_rows(8, latest_block_number)
    response = JsonResponse({
        "apr": apr,
        "apy": apy,
        "daily": [{
            'apy': x.apy
        } for x in days],
    })
    response.setdefault("Access-Control-Allow-Origin", "*")
    return _cache(120, response)
Example #7
0
def Restful_api(code=Restful_Api.ok, message=None, data=None, kwargs=None):
    """

    :param code: 返回请求码
    :param message:  返回请求信息
    :param data:  返回数据
    :param kwargs:  其他数据
    :return:
    """
    json_dict = {'code': code, 'message': message, 'data': data}
    if kwargs and kwargs.keys() and isinstance(kwargs, dict):
        json_dict.update(kwargs)
    response = JsonResponse(json_dict)
    response.setdefault('Access-Control-Origin', '*')
    response.setdefault('Access-Control-Allow-Origin', '*')
    response.setdefault('Access-Control-Allow-Methods', '*')
    response.setdefault('Access-Control-Allow-Headers', 'content_type')
    return response