33 lines
No EOL
1.1 KiB
Python
33 lines
No EOL
1.1 KiB
Python
from .db import get_db
|
|
from .data_models import DataError
|
|
from sqlite3 import IntegrityError
|
|
|
|
_INSER_METADATA_SQL = "INSERT INTO file_metadata(file_key,metadata) "\
|
|
"VALUES(:file_key, :metadata)"
|
|
_DELETE_METADATA_SQL = "DELETE FROM file_metadata WHERE file_key=:file_key"
|
|
def insert_metadata(metadata: dict):
|
|
db = get_db()
|
|
db_cursor = db.cursor()
|
|
|
|
delete_params = map(lambda key: {'file_key':key}, metadata.keys())
|
|
delete_params = list(delete_params)
|
|
db_cursor.executemany(_DELETE_METADATA_SQL, delete_params)
|
|
|
|
insert_params = map(lambda item: {'file_key':item[0], 'metadata':item[1]}, metadata.items())
|
|
insert_params = list(insert_params)
|
|
|
|
|
|
db_cursor.executemany(_INSER_METADATA_SQL, insert_params)
|
|
db.commit()
|
|
|
|
def get_metadata(file_key: str):
|
|
db = get_db()
|
|
db_cursor = db.cursor()
|
|
db_cursor.execute("SELECT metadata FROM file_metadata WHERE file_key=:file_key",{"file_key":file_key})
|
|
rows = db_cursor.fetchone()
|
|
|
|
if (rows is None):
|
|
return dict()
|
|
|
|
converted_tuple_array = map(lambda metadata: (file_key, metadata), rows)
|
|
return dict(converted_tuple_array) |