From 6c6105df9470bb87666c34015058a73b63fb8361 Mon Sep 17 00:00:00 2001 From: Arti Zirk Date: Thu, 1 Oct 2020 21:54:07 +0300 Subject: [PATCH] Add kdoorpi api endpoint --- kdoorweb/kdoorweb/db.py | 21 +++++++++++++++++++++ kdoorweb/kdoorweb/web.py | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/kdoorweb/kdoorweb/db.py b/kdoorweb/kdoorweb/db.py index 4d94acc..70f3903 100644 --- a/kdoorweb/kdoorweb/db.py +++ b/kdoorweb/kdoorweb/db.py @@ -145,6 +145,9 @@ class DB: ) return cur.fetchone() + def add_keycard(self, user_id, card_uid, name): + self.add_keycards([(user_id, card_uid, name)]) + def add_keycards(self, keycards): self.db.executemany(""" insert into keycards(user_id, card_uid, name) @@ -156,6 +159,24 @@ class DB: cur = self.db.execute("select id, name, created, disabled from keycards where user_id = ?", (user_id,)) return cur.fetchall() + def list_all_keycards(self): + cur = self.db.execute(""" + select + users.id as user_id, + users.user as user, + users.full_name as full_name, + k.id as card_id, + k.card_uid as card_uid + from users + join + keycards k on users.id = k.user_id + where + (users.disabled = 0 or users.disabled is null) + and + (k.disabled is 0 or k.disabled is null) + """) + return cur.fetchall() + @staticmethod def import_ad(json_file): with open(json_file) as fp: diff --git a/kdoorweb/kdoorweb/web.py b/kdoorweb/kdoorweb/web.py index 0e816e5..9e0a6cc 100644 --- a/kdoorweb/kdoorweb/web.py +++ b/kdoorweb/kdoorweb/web.py @@ -152,3 +152,9 @@ def log(db): @view("doors.html") def doors(db): return {"doors":[]} + + +# FIXME: Add door api auth +@app.route("/api/v1/cards", skip=[check_auth]) +def api_list_cards(db): + return {"keycards":[dict(card) for card in db.list_all_keycards()]}