httpaste/src/httpaste/backend/sqlite/user.py
2022-04-02 03:03:35 +02:00

55 lines
1.1 KiB
Python

"""SQlite backend user model interface
"""
from os import path
from sqlite3 import Connection
from httpaste.model import User
def load(proto: User, connection: Connection):
"""load a user
"""
cur = connection.cursor()
cur.execute(
'SELECT sub, key_hash, paste_index FROM users WHERE sub=?', (proto.sub,))
result = cur.fetchone()
if result:
return User(result['sub'], result['key_hash'], result['paste_index'])
return None
def dump(model: User, connection: Connection):
"""dump a user
"""
cur = connection.cursor()
cur.execute('''INSERT OR REPLACE INTO users (sub, key_hash, paste_index)
VALUES (?,?,?)''', (model.sub, model.key_hash, model.index))
connection.commit()
def delete(proto: object, connection: Connection) -> bool:
cur = connection.cursor()
cur.execute('''DELETE FROM users WHERE sub=?''', (proto.sub,))
connection.commit()
def init(connection: Connection):
cur = connection.cursor()
with open(path.join(path.dirname(__file__), 'user.sql'), 'r') as fh:
cur.execute(fh.read())
connection.commit()