| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | #!/usr/bin/env python3# -*- coding: utf-8 -*-from django.utils.decorators import method_decoratorfrom django.views.decorators.csrf import csrf_exemptfrom django.views.generic.base import Viewfrom Model.models import User_Brand, Device_Userfrom Object.ResponseObject import ResponseObjectfrom Object.TokenObject import TokenObjectclass UserBrandV2(View):    @method_decorator(csrf_exempt)    def dispatch(self, *args, **kwargs):        return super(UserBrandV2, self).dispatch(*args, **kwargs)    def get(self, request, *args, **kwargs):        request.encoding = 'utf-8'        operation = kwargs.get('operation')        request_dict = request.GET        return self.validate(request_dict, operation)    def post(self, request, *args, **kwargs):        request.encoding = 'utf-8'        operation = kwargs.get('operation')        request_dict = request.POST        return self.validate(request_dict, operation)    def validate(self, request_dict, operation):        token = request_dict.get('token', None)        response = ResponseObject()        token = TokenObject(token)        if token.code != 0:            return response.json(token.code)        if operation == 'add':            return self.do_add(token.userID, request_dict, response)        elif operation == 'query':            return self.do_query(token.userID, request_dict, response)        else:            return response.json(404)    def do_add(self, userID, request_dict, response):        deviceSupplier = request_dict.get('deviceSupplier', None)        deviceModel = request_dict.get('deviceModel', None)        osType = request_dict.get('osType', None)        osVersion = request_dict.get('osVersion', None)        if userID and deviceSupplier and deviceModel and osType and osVersion:            ub_qs = User_Brand.objects.filter(userID=userID)            if ub_qs.exists():                update = {                    'deviceSupplier': deviceSupplier,                    'deviceModel': deviceModel,                    'osType': osType,                    'osVersion': osVersion                }                ub_qs.update(**update)                return response.json(0)            else:                user = Device_User.objects.filter(userID=userID)                if not user.exists():                    return response.json(104)                data = {                    'userID': user[0],                    'deviceSupplier': deviceSupplier,                    'deviceModel': deviceModel,                    'osType': osType,                    'osVersion': osVersion                }                User_Brand.objects.create(**data)                return response.json(0)        else:            return response.json(444)    def do_query(self, userID, request_dict, response):        if not userID:            return response.json(444)        else:            ub_qs = User_Brand.objects.filter(userID=userID)            data = None            if ub_qs.exists():                data = ub_qs.values('id', 'deviceSupplier', 'deviceModel', 'osType', 'osVersion')[0]            return response.json(0, {'data': data})
 |