feat: add /devices endpoint
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user