From daf2a46632d8bbf8214794effffe95726e3b5733 Mon Sep 17 00:00:00 2001 From: 283375 Date: Thu, 31 Aug 2023 21:03:10 +0800 Subject: [PATCH] feat(db): `Score` related `Database` methods --- src/arcaea_offline/database.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/arcaea_offline/database.py b/src/arcaea_offline/database.py index e6b213a..c9e9164 100644 --- a/src/arcaea_offline/database.py +++ b/src/arcaea_offline/database.py @@ -1,7 +1,7 @@ import logging from typing import Optional, Union -from sqlalchemy import Engine, inspect, select +from sqlalchemy import Engine, func, inspect, select from sqlalchemy.orm import sessionmaker from .models.config import * @@ -138,6 +138,28 @@ class Database(metaclass=Singleton): # endregion + # region Score + + def get_scores(self): + stmt = select(Score) + with self.sessionmaker() as session: + results = list(session.scalars(stmt)) + return results + + def get_score_by_id(self, score_id: int): + stmt = select(Score).where(Score.id == score_id) + with self.sessionmaker() as session: + result = session.scalar(stmt) + return result + + def count_scores(self): + stmt = select(func.count(Score.id)) + with self.sessionmaker() as session: + result = session.scalar(stmt) + return result or 0 + + # endregion + def get_b30(self): stmt = select(CalculatedPotential.b30).select_from(CalculatedPotential) with self.sessionmaker() as session: