예제 #1
0
파일: resources.py 프로젝트: nqganh/IOT-SMD
 def obj_update(self, bundle, **kwargs):
     data = bundle.data
     unchange_list = ['uuid', 'extension', 'password']
     for value in unchange_list:
         if value in data:
             del data[value]
     ret =  super(DeviceResource, self).obj_update(bundle, **kwargs)
     obj = bundle.obj
     if data.get('do_not_disturb'):
         if data['do_not_disturb'] == 'true':
             obj.dial_string = 'error/user_busy'
         else:
             obj.dial_string = ''
             obj.do_not_disturb = ''
     if data.get('is_bell'):
         if data.get('is_bell') == 'true':
             if RingGroupDestination.objects.filter(destination_number=obj.extension).count() > 0:
                 data_res = {'error': "uuid exists in department's list, please check uuid again"}
                 response = self.error_response(bundle.request, data_res, response_class=HttpBadRequest)
                 raise ImmediateHttpResponse(response=response)
             else:
                 obj.description = 'is_bell'
         else:
             obj.description = ''
     obj.save()
     from device.models import sync_extension_user
     sync_extension_user(obj.extension)
     return ret
예제 #2
0
 def obj_create(self, bundle, **kwargs):
     req = ['uuid']
     data = bundle.data
     for value in req:
         if value not in data or data[value] == '' or is_valid_uuid(
                 data[value]) == False:
             data_res = {'error': "%s is not valid" % value}
             response = self.error_response(bundle.request,
                                            data_res,
                                            response_class=HttpBadRequest)
             raise ImmediateHttpResponse(response=response)
     if Extension.objects.filter(extension_uuid=data['uuid']).count() > 0:
         data_res = {
             'error':
             "uuid is exist, you cant create new one, please get sip account"
         }
         response = self.error_response(bundle.request,
                                        data_res,
                                        response_class=HttpBadRequest)
         raise ImmediateHttpResponse(response=response)
     else:
         for value in data:
             if data[value] in ['true', 'True']:
                 data[value] = True
             elif data[value] in ['false', 'False']:
                 data[value] = False
         kwargs['extension'] = random.randint(100000, 999999)
         kwargs['password'] = ''.join(
             random.choice(string.ascii_lowercase + string.digits)
             for _ in range(20))
         ext = Extension()
         ext.extension = kwargs['extension']
         ext.password = kwargs['password']
         ext.extension_uuid = data['uuid']
         ext.domain_uuid = '09f10c29-9f49-4209-9050-52bd09d1886a'
         ext.accountcode = bundle.request.user
         if data.get('is_bell') == 'true':
             ext.description = 'is_bell'
         ext.save()
         from device.models import sync_extension_user
         sync_extension_user(ext.extension)
         data_res = {
             "extension": kwargs['extension'],
             "password": kwargs['password'],
             "resource_uri": "/api/v1/device/%s/" % data['uuid']
         }
         response = self.error_response(bundle.request,
                                        data_res,
                                        response_class=HttpOK)
         raise ImmediateHttpResponse(response=response)
예제 #3
0
 def obj_update(self, bundle, **kwargs):
     data = bundle.data
     unchange_list = ['uuid', 'username', 'password']
     for value in unchange_list:
         if value in data:
             del data[value]
     ret = super(DeviceResource, self).obj_update(bundle, **kwargs)
     obj = bundle.obj
     if data.get('do_not_disturb'):
         if data['do_not_disturb'] == 'true':
             obj.dial_string = 'error/user_busy'
         else:
             obj.dial_string = ''
     if data.get('is_bell'):
         if data.get('is_bell') == 'true':
             obj.description = 'is_bell'
         else:
             obj.description = ''
     obj.save()
     from device.models import sync_extension_user
     sync_extension_user(obj.extension)
     return ret