mirror of
https://github.com/jaypyles/Scraperr.git
synced 2025-11-15 05:36:12 +00:00
* chore: refactor wip * chore: refactor wip * chore: refactor wip * chore: refactor wip * chore: refactor wip * chore: refactor wip * chore: work in progress * chore: work in progress * chore: work in progress * chore: work in progress * chore: work in progress * chore: work in progress * chore: work in progress * chore: work in progress * chore: work in progress * chore: refactor wip * chore: work in progress * chore: refactor wip * chore: refactor wip * chore: refactor wip * fix: build * fix: cypress test * fix: cypress test * fix: cypress test * fix: cypress test * fix: cypress test * fix: cypress test * fix: cypress test * fix: cypress test * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests * fix: cypress tests
70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
# STL
|
|
import logging
|
|
import sqlite3
|
|
|
|
# LOCAL
|
|
from api.backend.constants import (
|
|
DEFAULT_USER_EMAIL,
|
|
REGISTRATION_ENABLED,
|
|
DEFAULT_USER_PASSWORD,
|
|
DEFAULT_USER_FULL_NAME,
|
|
)
|
|
from api.backend.auth.auth_utils import get_password_hash
|
|
from api.backend.database.common import insert, connect
|
|
from api.backend.database.schema import INIT_QUERY
|
|
|
|
LOG = logging.getLogger("Database")
|
|
|
|
|
|
def execute_startup_query():
|
|
cursor = connect()
|
|
|
|
for query in INIT_QUERY.strip().split(";"):
|
|
query = query.strip()
|
|
|
|
if not query:
|
|
continue
|
|
|
|
try:
|
|
LOG.info(f"Executing query: {query}")
|
|
_ = cursor.execute(query)
|
|
|
|
except sqlite3.OperationalError as e:
|
|
if "duplicate column name" in str(e).lower():
|
|
LOG.warning(f"Skipping duplicate column error: {e}")
|
|
continue
|
|
else:
|
|
LOG.error(f"Error executing query: {query}")
|
|
raise
|
|
|
|
cursor.close()
|
|
|
|
|
|
def init_database():
|
|
execute_startup_query()
|
|
|
|
if not REGISTRATION_ENABLED:
|
|
default_user_email = DEFAULT_USER_EMAIL
|
|
default_user_password = DEFAULT_USER_PASSWORD
|
|
default_user_full_name = DEFAULT_USER_FULL_NAME
|
|
|
|
if (
|
|
not default_user_email
|
|
or not default_user_password
|
|
or not default_user_full_name
|
|
):
|
|
LOG.error(
|
|
"DEFAULT_USER_EMAIL, DEFAULT_USER_PASSWORD, or DEFAULT_USER_FULL_NAME is not set!"
|
|
)
|
|
exit(1)
|
|
|
|
query = "INSERT INTO users (email, hashed_password, full_name) VALUES (?, ?, ?)"
|
|
_ = insert(
|
|
query,
|
|
(
|
|
default_user_email,
|
|
get_password_hash(default_user_password),
|
|
default_user_full_name,
|
|
),
|
|
)
|