Пример #1
0
 def update(self, request, device_identifier):
     # print device_identifier, request.PUT, request.oauth2_user.pk
     client_id = request.PUT.get('client[client_id]')
     if not client_id:
         raise RestFormRequired("client[client_id]")
     if not device_identifier:
         raise RestFormRequired("device_identifier")
     # device_token = request.PUT
     # print user
     try:
         client_pk = Client.objects.get_cached(client_id=client_id).pk
     except Client.DoesNotExist:
         raise RestFormInvalid("client[client_id]")
     try:
         try:
             device = Device.objects.get(client_id=client_pk, device_identifier=device_identifier)
             if request.POST.get('device_token'):
                 Device.objects.filter(device_token=request.POST.get('device_token')).delete()
         except Device.DoesNotExist:
             try:
                 if request.POST.get('device_token'):
                     device = Device.objects.get(device_token=request.POST.get('device_token'))
                 else:
                     raise Device.DoesNotExist
             except Device.DoesNotExist:
                 device = Device(client_id=client_pk, device_identifier=device_identifier,
                                 device_token=request.POST.get('device_token'))
                 device.save()
     except IntegrityError:
         try:
             device = Device.objects.get(device_token=request.POST.get('device_token'))
         except Device.DoesNotExist:
             device = Device(device_token=request.POST.get('device_token'), client_id=client_pk,
                            device_identifier=device_identifier)
     if device:
         device.user_id = request.oauth2_user.pk
         device.save()
     if request.oauth2_user.pk:
         SimpleCache("_ut_user_device:%(user_id)s", 60 * 60 * 24 * 14, None).delete(user_id=request.oauth2_user.pk)
     return {}
Пример #2
0
    def create(self, request, **kwargs):
        # print request
        # print request.POST, request.POST.get('client')
        # user = request.oauth2_user
        client_id = request.POST.get('client[client_id]')
        if not client_id:
            raise RestFormRequired("client[client_id]")
        device_identifier = request.POST.get('device_identifier')
        if not device_identifier:
            raise RestFormRequired("device_identifier")
        # print user
        try:
            client_pk = Client.objects.get_cached(client_id=client_id).pk
        except Client.DoesNotExist:
            raise RestFormInvalid("client[client_id]")
        try:
            try:
                device = Device.objects.get(client_id=client_pk, device_identifier=device_identifier)
                if request.POST.get('device_token'):
                    Device.objects.filter(device_token=request.POST.get('device_token')).delete()
                # print "123213"
            except Device.DoesNotExist:
                try:
                    # print "1233"
                    if request.POST.get('device_token'):
                        # print "1235"
                        device = Device.objects.get(device_token=request.POST.get('device_token'))
                    else:
                        # print "fgfg"
                        raise Device.DoesNotExist
                except Device.DoesNotExist:
                    # print "1233"
                    device = Device(client_id=client_pk, device_identifier=device_identifier,
                                    device_token=request.POST.get('device_token'))
                    device.save()
        except IntegrityError:
            # print "asd"
            try:
                device = Device.objects.get(device_token=request.POST.get('device_token'))
                # print "1"
            except Device.DoesNotExist:
                device = Device(device_token=request.POST.get('device_token'), client_id=client_pk,
                               device_identifier=device_identifier)

        if device:
            device.model = request.POST.get('model')
            device.version = request.POST.get('version')
            device.device_version = request.POST.get('device_version', "")
            if request.POST.get('device_token'):
                device.device_token = request.POST.get('device_token')
            if request.POST.get('system_version'):
                device.system_version = request.POST.get('system_version')
            device.system_type = 0 if (request.POST.get('device_type') == 'iOS') else 1
            if request.oauth2_user.pk:
                device.user_id = request.oauth2_user.pk
            device.save()
        if request.oauth2_user.pk:
            SimpleCache("_ut_user_device:%(user_id)s", 60 * 60 * 24 * 14, None).delete(user_id=request.oauth2_user.pk)
        return {}