73 lines
2.3 KiB
Python
73 lines
2.3 KiB
Python
|
|
from abc import ABC
|
||
|
|
from framework.response_code import ResponseCode, MinCustomException
|
||
|
|
from datetime import datetime
|
||
|
|
from flask import request
|
||
|
|
import hashlib
|
||
|
|
|
||
|
|
|
||
|
|
class OpenABC(ABC):
|
||
|
|
"""
|
||
|
|
提供公共函数和功能函数
|
||
|
|
"""
|
||
|
|
|
||
|
|
def __init__(self):
|
||
|
|
self.response_code_enum: ResponseCode = ResponseCode
|
||
|
|
|
||
|
|
@staticmethod
|
||
|
|
def call_datetime(need_str: bool = True):
|
||
|
|
return str(datetime.now()) if need_str else datetime.now()
|
||
|
|
|
||
|
|
@staticmethod
|
||
|
|
def md5sum(string: str):
|
||
|
|
md5 = hashlib.md5()
|
||
|
|
password = string.encode("utf-8")
|
||
|
|
md5.update(password)
|
||
|
|
return md5.hexdigest()
|
||
|
|
|
||
|
|
@staticmethod
|
||
|
|
def make_exception(error_code: ResponseCode):
|
||
|
|
raise MinCustomException(error_code)
|
||
|
|
|
||
|
|
|
||
|
|
class OpenResponse(OpenABC):
|
||
|
|
def __init__(self):
|
||
|
|
super(OpenResponse, self).__init__()
|
||
|
|
self._response_code = self.response_code_enum.RESPONSE_100_CONTINUE # 错误代码, 默认Continue
|
||
|
|
self._response_data = None # 返回的数据
|
||
|
|
self.response: dict = {}
|
||
|
|
self.echo = False # 是否打印消息
|
||
|
|
self._handle_success: bool = False
|
||
|
|
|
||
|
|
def make_response(self, use_custom_context: bool = False) -> dict:
|
||
|
|
if use_custom_context:
|
||
|
|
return self._response_data
|
||
|
|
response_code: ResponseCode = self._response_code
|
||
|
|
|
||
|
|
err_code, err_message = response_code.return_tuple()
|
||
|
|
self.response = {"code": err_code, "message": err_message}
|
||
|
|
|
||
|
|
if self._response_data is not None:
|
||
|
|
self.response.update({"data": self._response_data})
|
||
|
|
|
||
|
|
if self.echo is True:
|
||
|
|
print("-" * 50)
|
||
|
|
print("Interface ERROR:")
|
||
|
|
print(f"Echo url: {request.url}")
|
||
|
|
print(f"Echo methods: {request.method}")
|
||
|
|
if request.method == "GET":
|
||
|
|
print(f"Echo params: {request.args}")
|
||
|
|
elif request.method == "POST":
|
||
|
|
print(f"Echo data: {request.data}")
|
||
|
|
print(f"Echo response: {self.response}")
|
||
|
|
return self.response
|
||
|
|
|
||
|
|
def set_response_data(self, data: object):
|
||
|
|
self._response_data = data
|
||
|
|
self._handle_success = True
|
||
|
|
|
||
|
|
def set_response_code(self, code_enum: ResponseCode):
|
||
|
|
self._response_code = code_enum
|
||
|
|
|
||
|
|
def make_debug_response(self):
|
||
|
|
raise MinCustomException(self.response_code_enum.RESPONSE_201_DEBUG)
|