class Code(object):
MSG = { }
@classmethod
def api_resp(cls, code=0, msg=None, data=None):
if codeis None:
reason = cls.MSG.get(result, '')
return ApiResp(result, reason, resp)
def safe_int(val):
if isinstance(val, (int, long)):
return val
if isinstance(val, basestring):
val = val.strip()
try:
if isinstance(val, basestring) and "." in val:
return int(float(val))
return int(val)
except Exception:
raise ValidateException(Code.invalid_params, 'safe_int error ,'
'val:{0}'.format(val))
def safe_float(val):
if isinstance(val, float):
return val
if isinstance(val, (int, long)):
return float(val)
if isinstance(val, basestring):
val = val.strip()
try:
return float(val)
except Exception:
raise ValidateException(Code.invalid_params, 'safe_float error ,'
'val:{0}'.format(val))
def safe_str(val, encodeing="utf-8"):
try:
if not isinstance(val, basestring):
return str(val)
if isinstance(val, unicode):
return val.encode(encodeing, "replace")
return val
except Exception:
raise ValidateException(Code.invalid_params, 'safe_str error ,'
'val:{0}'.format(val))
class ArgsTypeConsts(object):
STR = 'str'
INT = 'int'
FLOAT = 'float'
OBJ = 'object'
ARRAY = 'array'
class ArgsResolver(object):
def __init__(self, input_obj, obj_desc):
'''
:param input_obj: 输入需要校验的对象
:param obj_desc: 校验描述对象
'''
self.not_null(input_obj, 'input_obj').not_null(obj_desc,