Init
This commit is contained in:
38
barcode_server/util.py
Normal file
38
barcode_server/util.py
Normal file
@ -0,0 +1,38 @@
|
||||
from evdev import InputDevice
|
||||
|
||||
from barcode_server.barcode import BarcodeEvent
|
||||
|
||||
|
||||
def input_device_to_dict(input_device: InputDevice) -> dict:
|
||||
"""
|
||||
Converts an input device to a a dictionary with human readable values
|
||||
:param input_device: the device to convert
|
||||
:return: dictionary
|
||||
"""
|
||||
return {
|
||||
"name": input_device.name,
|
||||
"path": input_device.path,
|
||||
"vendorId": f"{input_device.info.vendor: 04x}",
|
||||
"productId": f"{input_device.info.product: 04x}",
|
||||
}
|
||||
|
||||
|
||||
def barcode_event_to_json(server_id: str, event: BarcodeEvent) -> bytes:
|
||||
"""
|
||||
Converts a barcode event to json
|
||||
:param server_id: server instance id
|
||||
:param event: the event to convert
|
||||
:return: json representation
|
||||
"""
|
||||
import orjson
|
||||
|
||||
event = {
|
||||
"id": event.id,
|
||||
"serverId": server_id,
|
||||
"date": event.date.isoformat(),
|
||||
"device": input_device_to_dict(event.input_device),
|
||||
"barcode": event.barcode
|
||||
}
|
||||
|
||||
json = orjson.dumps(event)
|
||||
return json
|
Reference in New Issue
Block a user