refactor: cleanup function
This commit is contained in:
parent
3cabbe22db
commit
0a3b422e3d
@ -21,7 +21,7 @@ LOGGER.addHandler(consoleHandler)
|
|||||||
class Database:
|
class Database:
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.connect(**kwargs)
|
pass
|
||||||
|
|
||||||
def connect(self, **kwargs):
|
def connect(self, **kwargs):
|
||||||
with open('config.yaml', 'r') as file:
|
with open('config.yaml', 'r') as file:
|
||||||
@ -103,20 +103,18 @@ class Database:
|
|||||||
|
|
||||||
@connectionpersistence
|
@connectionpersistence
|
||||||
def insert_bought_items(self, user: str, items: dict, date: str = None):
|
def insert_bought_items(self, user: str, items: dict, date: str = None):
|
||||||
temp = ["user, item, amount", "%(user)s, %(item)s, %(amount)s", "bought.user = %(user)s AND bought.item = %(item)s AND bought.date = "]
|
temp = ["user, item, amount", "%(user)s, %(item)s, %(amount)s",
|
||||||
temp[2] += "%(date)s" if date else "NOW()"
|
"bought.user = %(user)s AND bought.item = %(item)s AND bought.date = " + ("%(date)s" if date else "NOW()")]
|
||||||
if date:
|
if date:
|
||||||
temp[0] += ", date"
|
temp[0] += ", date"
|
||||||
temp[1] += ", %(date)s"
|
temp[1] += ", %(date)s"
|
||||||
|
values = [{'user': user, 'item': key, 'amount': value, 'date': date} for key, value in items.items()]
|
||||||
|
else:
|
||||||
|
values = [{'user': user, 'item': key, 'amount': value} for key, value in items.items()]
|
||||||
query = f"INSERT INTO bought({temp[0]}) VALUES({temp[1]}) ON CONFLICT ON CONSTRAINT bought_user_item_buy_date DO UPDATE SET amount = bought.amount + %(amount)s WHERE {temp[2]};"
|
query = f"INSERT INTO bought({temp[0]}) VALUES({temp[1]}) ON CONFLICT ON CONSTRAINT bought_user_item_buy_date DO UPDATE SET amount = bought.amount + %(amount)s WHERE {temp[2]};"
|
||||||
with self.conn.cursor() as cursor:
|
with self.conn.cursor() as cursor:
|
||||||
try:
|
try:
|
||||||
if date:
|
cursor.executemany(query, values)
|
||||||
cursor.executemany(query, [
|
|
||||||
{'user': user, 'item': key, 'amount': value, 'date': date} for key, value in items.items()])
|
|
||||||
else:
|
|
||||||
cursor.executemany(query, [
|
|
||||||
{'user': user, 'item': key, 'amount': value} for key, value in items.items()])
|
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user