device-manager.app.api.dal#

Device data access layer.

Provides functions to interact with the device database, including creating, updating, retrieving, and deleting device records. It uses SQLAlchemy for asynchronous database operations and Pydantic models for data validation.

Copyright (C) 2023, BRAIN-LINK UG (haftungsbeschränkt). All Rights Reserved. SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-ScanHub-Commercial

Functions#

dal_create_device(→ app.api.db.Device)

Add a new device to the database.

dal_get_device(→ app.api.db.Device | None)

Fetch a device from database.

dal_get_all_devices(→ list[app.api.db.Device])

Get a list of all existing devices.

dal_delete_device(→ bool)

Delete a device by identifier.

dal_update_device(→ app.api.db.Device | None)

Update an existing device in database.

Module Contents#

async device-manager.app.api.dal.dal_create_device(request: scanhub_libraries.models.DeviceCreationRequest, token_hash: str, salt: str) app.api.db.Device#

Add a new device to the database.

Arguments#

payload {BaseDevice} – Pydantic base model to create a new database entry

async device-manager.app.api.dal.dal_get_device(device_id: uuid.UUID) app.api.db.Device | None#

Fetch a device from database.

Arguments#

device_id {UUID} – Identifier of the device

Returns#

Device – Database orm model

async device-manager.app.api.dal.dal_get_all_devices() list[app.api.db.Device]#

Get a list of all existing devices.

Returns#

List[Device] – List of database orm models

async device-manager.app.api.dal.dal_delete_device(device_id: uuid.UUID) bool#

Delete a device by identifier.

Parameters#

device_id {UUID} – Identifier of the device to be deleted

Returns#

bool – Success of delete event

async device-manager.app.api.dal.dal_update_device(device_id: uuid.UUID, payload: dict) app.api.db.Device | None#

Update an existing device in database.

Parameters#

id {UUID} – Identifier of device payload {dict} – Dict with the fields to update.

Returns#

Device – Updated database orm model.