PNS/server/application/backend/data/dao_device.py
2024-07-08 20:05:21 +03:00

40 lines
1.2 KiB
Python

from .data_models import Device
from .data_models import DataError
from .db import get_cursor
from sqlite3 import IntegrityError
def _device_from_row(row):
return Device(
name = row['device_name'],
token = row['device_token'],
encryption_key = row['encryption_key'],
)
def get_devices():
with get_cursor() as db_cursor:
db_cursor.execute("SELECT * FROM device")
rows = db_cursor.fetchall()
return map(_device_from_row, rows)
_INSERT_DEVICE_SQL = "INSERT INTO device(device_name, device_token, encryption_key)"\
"VALUES(:device_name, :device_token, :encryption_key)"
def insert_device(device: Device):
params = {
"device_name": device.name,
"device_token": device.token,
"encryption_key": device.encryption_key,
}
with get_cursor() as db_cursor:
try:
db_cursor.execute(_INSERT_DEVICE_SQL, params)
except IntegrityError as e:
return DataError.DEVICE_INSERT_ERROR
return db_cursor.lastrowid
def delete_device_by_name(name: str):
with get_cursor() as db_cursor:
db_cursor.execute('DELETE FROM device WHERE device_name=:name',{'name':name})