flask-home-vod/server/flask/application/backend/data/dao_file_metadata.py
2023-02-02 01:47:38 +02:00

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)