new db system
This commit is contained in:
parent
7f1f908961
commit
ce009a278b
2 changed files with 64 additions and 28 deletions
|
@ -10,24 +10,47 @@ def log(statement, user_id, before, after, change):
|
|||
c.execute("INSERT INTO transaction_log (timestamp, type, user_id, before, after, change) VALUES (?, ?, ?, ?, ?, ?)", [datetime.now(), statement, user_id, before, after, change])
|
||||
db.commit()
|
||||
|
||||
def change_db(statement, user_id=None, before=None, after=None, change=None):
|
||||
def add_user(after):
|
||||
db = get_db()
|
||||
c = db.cursor()
|
||||
if statement == "adduser" and after != None:
|
||||
c.execute("INSERT or IGNORE INTO users (username, balance) VALUES (?, 0)", [after])
|
||||
user_id = c.lastrowid
|
||||
elif statement == "removeuser" and user_id != None and before != None:
|
||||
c.execute("DELETE FROM tags WHERE userid=?", [user_id])
|
||||
c.execute("DELETE FROM users WHERE id=?", [user_id])
|
||||
elif statement == "addtag" and after != None and user_id != None:
|
||||
c.execute("INSERT OR IGNORE INTO tags (tagid, userid) VALUES ?, ?)", [after, user_id])
|
||||
elif statement == "removetag" and before != None and user_id != None:
|
||||
c.execute("DELETE FROM tags WHERE (tagid = ? AND userid = ?)", [before, user_id])
|
||||
elif statement == "balance" and change != None and user_id != None:
|
||||
c.execute("UPDATE users SET balance = balance + ? WHERE id=?", [change, user_id])
|
||||
else:
|
||||
raise Exception("wrong or missing argument for change_db")
|
||||
log(statement, user_id, before, after, change)
|
||||
c.execute("INSERT or IGNORE INTO users (username, balance) VALUES (?, 0)", [after])
|
||||
user_id = c.lastrowid
|
||||
log("add_user", user_id=user_id, after=after)
|
||||
db.commit()
|
||||
|
||||
def remove_user(user_id):
|
||||
db = get_db()
|
||||
c = db.cursor()
|
||||
c.execute("SELECT * FROM users WHERE id = ?", [user_id])
|
||||
user_name = c.fetchone()[1]
|
||||
c.execute("SELECT * FROM tags WHERE userid = ?", [user_id])
|
||||
for tag in c.fetchall():
|
||||
remove_tag(tag[0])
|
||||
c.execute("DELETE FROM users WHERE id = ?", [user_id])
|
||||
log("remove_user", user_id=user_id, before=user_name)
|
||||
db.commit()
|
||||
|
||||
def add_tag(user_id, tag_id):
|
||||
db = get_db()
|
||||
c = db.cursor()
|
||||
c.execute("INSERT OR IGNORE INTO tags (tagid, userid) VALUES ?, ?)", [tag_id, user_id])
|
||||
db.commit()
|
||||
log("addtag", after=tag_id, user_id=user_id)
|
||||
|
||||
def remove_tag(tag_id):
|
||||
db = get_db()
|
||||
c = db.cursor()
|
||||
c.execute("SELECT * FROM tags WHERE tagid = ?", [tag_id])
|
||||
user_id = c.fetchone()[1]
|
||||
c.execute("DELETE FROM tags WHERE tagid = ?", [tag_id])
|
||||
log("removetag", before=tag_id, user_id=user_id)
|
||||
db.commit()
|
||||
|
||||
def change_balance(user_id, change):
|
||||
db = get_db()
|
||||
c = db.cursor()
|
||||
c.execute("UPDATE users SET balance = balance + ? WHERE id=?", [change, user_id])
|
||||
log("balance", user_id=user_id, change=change)
|
||||
db.commit()
|
||||
|
||||
def get_db():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue