"""
通用api
"""
import json
from flask import jsonify

SUCCESS_RESPONSE = json.dumps({
    "code": 1,
    "msg": "请求成功",
    "success": True,
}, ensure_ascii=False)


class BusinessException(Exception):
    """
    自定义业务异常
    """

    def __init__(self, msg):
        super().__init__(self)
        self.msg = msg


def raiseError(msg):
    """ """
    raise BusinessException(msg)


def fail_response(msg: str):
    """
    请求失败
    """
    return jsonify({
        "code": 0,
        "msg": msg,
        "success": False,
    })


def assert_not_none(data, msg):
    """
    断言方法
    """
    if data is None:
        raise BusinessException(msg)


def assert_not_empty(data, msg):
    """
    断言方法
    """
    if data is None or len(data) == 0:
        raise BusinessException(msg)


def success(data=None):
    if data is None:
        return SUCCESS_RESPONSE
    return jsonify({
        "code": 1,
        "msg": "请求成功",
        "data": data,
        "success": True,
    })