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
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
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)
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)
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
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)
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