feat: add /devices endpoint

This commit is contained in:
2026-04-28 23:41:13 +02:00
parent 45773571aa
commit 1391e34e69
3 changed files with 37 additions and 1 deletions
+8 -1
View File
@@ -7,8 +7,10 @@ import logging
import sqlite3
import sys
import db
app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'secret' # TODO change and load from a secrets store
app.config['JWT_SECRET_KEY'] = 'secret' # TODO change and load from a secrets store (should be over 32 bytes long)
app.config['JWT_ACCESS_TOKEN_EXPIRES'] = timedelta(hours=1)
app.config['JWT_REFRESH_TOKEN_EXPIRES'] = timedelta(days=30)
flask_bcrypt = Bcrypt(app)
@@ -60,3 +62,8 @@ def verify_token():
def refresh_token():
return make_response(jsonify({"access_token": create_access_token(identity=get_jwt_identity())}), 200)
@app.route("/devices", methods=["GET"])
@jwt_required()
def get_all_devices():
return make_response(jsonify([d.to_dict() for d in db.get_all_devices(cur)]), 200)
+12
View File
@@ -0,0 +1,12 @@
from dto import Device
def get_all_devices(cur) -> list[Device]:
res = cur.execute("SELECT access_key, type, name FROM devices")
devices_from_db = res.fetchall()
devices = []
for item in devices_from_db:
devices.append(Device.convert(item))
return devices
+17
View File
@@ -0,0 +1,17 @@
class Device:
def __init__(self, access_key, device_type, name):
self.access_key = access_key
self.device_type = device_type
self.name = name
def to_dict(self):
return {
'access_key': self.access_key,
'type': self.device_type,
'name': self.name
}
def convert(device_from_db) -> Device:
return Device(*device_from_db)