# coding=utf-8

"""
根据nsfocus rest要求返回对应对象
"""
from django.http import JsonResponse


class Result(object):
    """
    结果对象 用于返回给 JsonResponse
    """
    SUCCESS_CODE = 200  # 成功的状态码
    FAILED_CODE = 500  # 失败的状态码
    SUCCESS_MESSAGE = 'success'  # 返回单个数据的message
    SUCCESS_MESSAGE_LIST = '请求成功'  # 返回list的message

    @classmethod
    def ok(cls, data):
        """
        返回单个对象
        :param data: 对象 dict
        :return:
        """
        return JsonResponse({
            'code': cls.SUCCESS_CODE,
            'message': cls.SUCCESS_MESSAGE,
            'data': data
        })

    @classmethod
    def list(cls, total, page, limit, data):
        """
        返回list
        :param total:
        :param page:
        :param limit:
        :param data:
        :return:
        """
        return JsonResponse({
            'code': cls.SUCCESS_CODE,
            'message': cls.SUCCESS_MESSAGE_LIST,
            'data': {
                'total': total,
                'page': page,
                'limit': limit,
                'list': data
            }
        })

    @classmethod
    def failed(cls, message, detail=''):
        """
        请求失败
        :param message: 错误信息
        :param detail:  详细描述
        :return:
        """
        return JsonResponse({
            'code': cls.FAILED_CODE,
            'message': message,
            'data': {
                'detail': detail
            }
        })

    @classmethod
    def failed_list(cls, message, data):
        """
        部分请求失败
        :param message: 失败描述
        :param data: 失败内容的list
        :return:
        """
        return JsonResponse({
            'code': cls.FAILED_CODE,
            'message': message,
            'data': {
                'list': data
            }
        })
