from django.shortcuts import HttpResponse
import simplejson as json


class uidManageResponseObject(object):

    def __init__(self, lang='cn'):
        self.lang = lang

    def data(self, code, res=None):
        if res is None:
            res = {}

        data_cn = {
            0: '成功',
            5: '请一分钟后再尝试',
            8: '用户账号已存在',
            9: '用户账号不存在',
            10: res,
            13: '时间戳token校验失败',
            42: '两次输入的新密码错误',
            43: '客户端服务器已关闭，请下载新版本使用',
            44: '系统错误,发送邮件失败',
            45: '系统错误，生成令牌出错！',
            46: '系统错误，发送短信失败！',
            47: '旧密码不正确',
            74: '关联旧用户失败！',
            79: '您已经申请过重置密码，请到邮箱进行确认！',
            89: '您已经获得了验证码，请在10分钟后检查或再次确认。',
            99: '账户或密码错误',
            101: '手机的用户账号已经存在！',
            102: '手机的用户账号不存在！',
            103: '邮箱用户帐户已经存在！',
            104: '邮箱用户帐户不存在！',
            107: '用户名格式不符合规则！',
            108: '邮箱格式不符合规则！',
            110: '因为用户未激活，用户是无效用户！',
            111: '您输入的密码不正确！',
            120: '验证码已过期或不存在、请重新获得验证码！',
            121: '验证码错了！',
            138: '手机格式不符合规则！',
            173: '数据不存在！',
            174: '数据已存在',
            175: 'mac地址已用完',
            176: '数据库异常',
            305: '令牌格式是错误的，相关参数是不存在的！',
            307: '令牌已过期！',
            308: '此次下载已失效',
            309: '你没有权限访问',
            373: '没有相应的公司',
            374: '没有相应的地区',
            375: 'uid不足',
            376: 'uid数据有误',
            377: 'uid已使用',
            378: '更新序列号状态失败',
            379: '序列号不存在',
            404: '没有访问权限！',
            414: '请确认请求url！',
            444: '请确认参数的正确性！',
            500: '内部错误！',
            1112: '您输入的两次密码不一致！',
            208: '只能预定当天的或者以后的！',
            10041: '已超出序列号剩余可绑定数',
            10042: '序列号已被占用',
            10043: '无法解绑,序列号的状态为被占用',
        }

        data_en = {
            0: 'Success',
            5: 'Please try again one minute later!',
            8: 'User accounts already exist',
            9: 'User accounts is not exist',
            10: res,
            13: 'Timestamp token verification failed',
            42: 'The new password entered twice is incorrect',
            43: 'The client server is closed. Please download the new version for use',
            44: 'System error,send email fail!',
            45: 'System error,generate token fail!',
            46: 'System error, sending SMS failed!',
            47: 'Old password is incorrect',
            74: 'Failed to connect old users!',
            79: 'You have applied for reset password, please go to email for confirmation!',
            89: 'You have already obtained the verification code, please check it or get it again after 10 minutes.',
            99: ' ERROR Incorrect account or password',
            101: 'The user account of the mobile phone has already existed!',
            102: 'The user account of the mobile phone does not exist!',
            103: 'The mailbox user account has already existed!',
            104: 'The mailbox user account does not exist!',
            107: 'The username format does not conform to the rules!',
            108: 'The mailbox format does not conform to the rules! ',
            110: 'Because the user is not activated, the user is an invalid user!',
            111: 'The password you entered is incorrect!',
            120: 'The captcha has expired or does not exist, please obtain the captcha again!',
            121: 'The verification code is wrong!',
            138: 'The phone format does not conform to the rules! ',
            173: 'Data does not exists!',
            174: 'Data already exists',
            175: 'MAC address has been used up',
            176: 'Database exception',
            305: 'The Token format is wrong and the related parameter is None!',
            307: 'The Token has expired!',
            308: 'This download has expired!',
            309: 'You have no access',
            373: 'No corresponding company',
            374: 'Region does not exist',
            375: 'Insufficient uid',
            376: 'wrong uid data',
            377: 'uid used',
            378: 'Failed to update serial number status',
            379: 'Serial number does not exist',
            404: 'You don not have permission to access this!',
            414: 'Please confirm the request url!',
            444: 'Please confirm the correctness of the parameters!',
            500: 'Internal error!',
            1112: 'The two passwords you entered do not match!',
            10041: 'The remaining number of serial numbers that can be bound has exceeded',
            10042: 'Serial number is already occupied',
            10043: 'Unable to unbind, the status of the serial number is occupied',
        }

        msg = data_cn if self.lang == 'cn' else data_en
        reason = msg.get(code)
        if reason is None:
            reason = 'code不存在'
        return {'result_code': code, 'reason': reason, 'result': res, 'error_code': code}

    def formal(self, code, res=None):
        if res is None:
            res = {}
        formal_data = self.data(code, res)
        return json.dumps(formal_data, ensure_ascii=False)

    def json(self, code, res=None):
        if res is None:
            res = {}
        result = self.formal(code, res)
        return HttpResponse(result)
