This commit is contained in:
Cayo Puigdefabregas 2022-12-12 14:10:17 +01:00
parent 4debac4fbe
commit fac6380bcf
3 changed files with 16 additions and 29 deletions

View File

@ -745,7 +745,7 @@ class Device(Thing):
return "" return ""
def set_hid(self): def set_new_hid(self):
""" """
The order is important The order is important
# product_vendor, is a manufacturer # product_vendor, is a manufacturer
@ -814,7 +814,18 @@ class Device(Thing):
if self.hid: if self.hid:
return hashlib.sha3_512(self.hid.encode()).hexdigest() return hashlib.sha3_512(self.hid.encode()).hexdigest()
def set_old_hid(self): def get_from_db(self):
if not self.hid:
return
return Device.query.filter_by(
hid=self.hid,
owner_id=g.user.id,
active=True,
placeholder=None,
).first()
def set_hid(self):
with suppress(TypeError): with suppress(TypeError):
self.hid = Naming.hid( self.hid = Naming.hid(
self.type, self.manufacturer, self.model, self.serial_number self.type, self.manufacturer, self.model, self.serial_number

View File

@ -208,21 +208,6 @@ class Computer(Device):
receiver_id = UUID(data_key='receiverID') receiver_id = UUID(data_key='receiverID')
system_uuid = UUID(required=False) system_uuid = UUID(required=False)
@post_load
def validate_hid(self, data):
"""Validates than exist model manufacturer and system_uuid."""
minimum = [
data.get('manufacturer'),
data.get('model'),
data.get('system_uuid'),
]
if not all(minimum):
txt = 'You can not register one device with out minimum datas, '
txt += 'you can to do one placeholder.'
raise ValidationError(txt)
class Desktop(Computer): class Desktop(Computer):
__doc__ = m.Desktop.__doc__ __doc__ = m.Desktop.__doc__

View File

@ -212,19 +212,10 @@ class Sync:
placeholder=None, placeholder=None,
).one() ).one()
# if no there are any Computer by uuid search by hid # if no there are any Computer by uuid search by hid
if not db_device and device.hid: if not db_device:
with suppress(ResourceNotFound): db_device = device.get_from_db()
db_device = Device.query.filter_by(
hid=device.hid,
owner_id=g.user.id,
active=True,
placeholder=None,
).one()
elif device.hid: elif device.hid:
with suppress(ResourceNotFound): db_device = device.get_from_db()
db_device = Device.query.filter_by(
hid=device.hid, owner_id=g.user.id, active=True, placeholder=None
).one()
if db_device and db_device.allocated: if db_device and db_device.allocated:
raise ResourceNotFound('device is actually allocated {}'.format(device)) raise ResourceNotFound('device is actually allocated {}'.format(device))