From f6a301668b8eb4939c55e23d39f4c21052db980a Mon Sep 17 00:00:00 2001 From: Lee Salminen Date: Sun, 21 Aug 2022 10:30:25 -0600 Subject: [PATCH] Revert "convert to using lnbits card id instead of card uid" This reverts commit 971d8f34e80c69edbede455037bae0028c7cc482. --- lnbits/extensions/boltcards/crud.py | 12 ++++++++++++ lnbits/extensions/boltcards/views_api.py | 9 +++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lnbits/extensions/boltcards/crud.py b/lnbits/extensions/boltcards/crud.py index f6ab2239..8707a969 100644 --- a/lnbits/extensions/boltcards/crud.py +++ b/lnbits/extensions/boltcards/crud.py @@ -85,6 +85,18 @@ async def get_card(card_id: str) -> Optional[Card]: return Card.parse_obj(card) +async def get_card_by_uid(card_uid: str) -> Optional[Card]: + row = await db.fetchone( + "SELECT * FROM boltcards.cards WHERE uid = ?", (card_uid.upper(),) + ) + if not row: + return None + + card = dict(**row) + + return Card.parse_obj(card) + + async def get_card_by_otp(otp: str) -> Optional[Card]: row = await db.fetchone("SELECT * FROM boltcards.cards WHERE otp = ?", (otp,)) if not row: diff --git a/lnbits/extensions/boltcards/views_api.py b/lnbits/extensions/boltcards/views_api.py index d4a990f2..960ce43e 100644 --- a/lnbits/extensions/boltcards/views_api.py +++ b/lnbits/extensions/boltcards/views_api.py @@ -25,6 +25,7 @@ from .crud import ( get_all_cards, get_card, get_card_by_otp, + get_card_by_uid, get_cards, get_hits, update_card, @@ -131,15 +132,15 @@ async def api_hits( # /boltcards/api/v1/scan?p=00000000000000000000000000000000&c=0000000000000000 @boltcards_ext.get("/api/v1/scan") -@boltcards_ext.get("/api/v1/scan/{card_id}") -async def api_scan(p, c, request: Request, card_id: str = None): +@boltcards_ext.get("/api/v1/scan/{card_uid}") +async def api_scan(p, c, request: Request, card_uid: str = None): # some wallets send everything as lower case, no bueno p = p.upper() c = c.upper() card = None counter = b"" - if not card_id: + if not card_uid: # since this route is common to all cards I don't know whitch 'meta key' to use # so I try one by one until decrypted uid matches for cand in await get_all_cards(): @@ -156,7 +157,7 @@ async def api_scan(p, c, request: Request, card_id: str = None): continue else: try: - card = await get_card(card_id) + card = await get_card_by_uid(card_uid) card_uid, counter = decryptSUN(bytes.fromhex(p), bytes.fromhex(card.k1)) except: return {"status": "ERROR", "reason": "Error decrypting card."}