Add kdoorpi api endpoint

This commit is contained in:
Arti Zirk 2020-10-01 21:54:07 +03:00
parent a9abf1eba0
commit 6c6105df94
2 changed files with 27 additions and 0 deletions

View File

@ -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:

View File

@ -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()]}