@@ -23,7 +23,14 @@ def __init__(
2323 async def db_fetch (self , query : str ):
2424 async with self .pool .acquire () as conn :
2525 async with conn .transaction ():
26- return await conn .fetch (query )
26+ cur = await conn .fetch (query )
27+ await db .close ()
28+ return cur
29+
30+ def db_transaction (self , query : str , params = None ):
31+ with psycopg2 .connect (self .postgres ) as con :
32+ with con .cursor () as cur :
33+ cur .execute (query , params )
2734
2835 async def db_transaction (self , query : str ):
2936 async with self .pool .acquire () as conn :
@@ -86,28 +93,30 @@ async def get_merged_keys(self, dev_eui: str) -> str:
8693 query = """
8794 INSERT INTO helium_devices
8895 (dev_eui, join_eui, dev_addr, max_copies, aps_key, nws_key, dev_name, fcnt_up, fcnt_down)
89- VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' )
96+ VALUES (%(dev_eui)s, %(join_eui)s, %(dev_addr)s, %(max_copies)s, %(aps_key)s, %(nws_key)s, %(dev_name)s, %(fcnt_up)s, %(fcnt_down)s )
9097 ON CONFLICT (dev_eui) DO UPDATE
91- SET join_eui = '{1}',
92- dev_addr = '{2}',
93- max_copies = '{3}',
94- aps_key = '{4}',
95- nws_key = '{5}',
96- dev_name = '{6}',
97- fcnt_up = '{7}',
98- fcnt_down = '{8}';
99- """ .format (
100- devices ["devEui" ],
101- devices ["joinEui" ],
102- devices ["devAddr" ],
103- max_copies ,
104- devices ["appSKey" ],
105- devices ["nwkSEncKey" ],
106- devices ["name" ],
107- devices ["fCntUp" ],
108- devices ["nFCntDown" ],
109- )
110- await self .db_transaction (query )
98+ SET join_eui = EXCLUDED.join_eui,
99+ dev_addr = EXCLUDED.dev_addr,
100+ max_copies = EXCLUDED.max_copies,
101+ aps_key = EXCLUDED.aps_key,
102+ nws_key = EXCLUDED.nws_key,
103+ dev_name = EXCLUDED.dev_name,
104+ fcnt_up = EXCLUDED.fcnt_up,
105+ fcnt_down = EXCLUDED.fcnt_down;
106+ """
107+ params = {
108+ "dev_eui" : devices ["devEui" ],
109+ "join_eui" : devices ["joinEui" ],
110+ "dev_addr" : devices ["devAddr" ],
111+ "max_copies" : max_copies ,
112+ "aps_key" : devices ["appSKey" ],
113+ "nws_key" : devices ["nwkSEncKey" ],
114+ "dev_name" : devices ["name" ],
115+ "fcnt_up" : devices ["fCntUp" ],
116+ "fcnt_down" : devices ["nFCntDown" ],
117+ }
118+ self .db_transaction (query , params )
119+ # await self.async_db_transaction(query)
111120 return f"Updated: { dev_eui } "
112121
113122 async def helium_skfs_update (self ):
0 commit comments