aboutsummaryrefslogtreecommitdiff
"""Functions for db interactions for averaging methods"""
from typing import Optional

import MySQLdb as mdb
from MySQLdb.cursors import DictCursor

def averaging_methods(conn: mdb.Connection) -> tuple[dict, ...]:
    """Fetch all available averaging methods"""
    with conn.cursor(cursorclass=DictCursor) as cursor:
        cursor.execute("SELECT * FROM AvgMethod")
        return tuple(dict(row) for row in cursor.fetchall())

def averaging_method_by_id(
        conn: mdb.Connection, averageid: int) -> Optional[dict]:
    """Fetch the averaging method by its ID"""
    with conn.cursor(cursorclass=DictCursor) as cursor:
        cursor.execute("SELECT * FROM AvgMethod WHERE Id=%s",
                       (averageid,))
        result = cursor.fetchone()
        if bool(result):
            return dict(result)

    return None