diff --git a/src/borgmanager/database/borgdatabase.py b/src/borgmanager/database/borgdatabase.py index 54c385d..2d431fb 100644 --- a/src/borgmanager/database/borgdatabase.py +++ b/src/borgmanager/database/borgdatabase.py @@ -34,4 +34,7 @@ class BorgDatabase(object): def get_repos(self): return self.repo_conn.get_all() + def get_repo_stats(self, repo): + return self.stats_conn.get_latest_stats(repo) + # endregion diff --git a/src/borgmanager/database/connection/statsconn.py b/src/borgmanager/database/connection/statsconn.py index e383995..b8fb93b 100644 --- a/src/borgmanager/database/connection/statsconn.py +++ b/src/borgmanager/database/connection/statsconn.py @@ -9,6 +9,8 @@ class StatsConn(DatabaseConnection): super().__init__(db_path, table_name) + # region INIT + def _create_table(self): create_statement = f"create table if not exists {self._sql_table}(" \ f"stat_id INTEGER PRIMARY KEY," \ @@ -24,6 +26,10 @@ class StatsConn(DatabaseConnection): f" {self.archive_table} (archive_id));" self.sql_execute(create_statement) + # endregion + + # region INSERT + def _exists(self, record): return None, None @@ -41,3 +47,13 @@ class StatsConn(DatabaseConnection): cursor.execute(statement, args) self.sql_commit() return cursor.lastrowid + + # endregion + + # region QUERY + + def get_latest_stats(self, repo): + key = repo.primary_key + return self.sql_execute_one(f"SELECT * FROM {self._sql_table} WHERE repo_id=?;", (key,)) + + # endregion