diff --git a/capi/__init__.py b/capi/__init__.py index 3650a99..f190c14 100644 --- a/capi/__init__.py +++ b/capi/__init__.py @@ -103,6 +103,7 @@ class CAPIAuthorizer: return None row['expires_over'] = int(row['expires_on']) - int(time.time()) + return row def refresh_by_state(self, state: str, force_refresh=False, failure_tolerance=True) -> dict: diff --git a/capi/model.py b/capi/model.py index bd8d6d1..f1b98bb 100644 --- a/capi/model.py +++ b/capi/model.py @@ -111,7 +111,12 @@ class Model: self.db.execute(sqlite_requests.refresh_times_increment, {'state': state}) def get_token_for_user(self, state: str) -> dict: - return self.db.execute(sqlite_requests.get_token_for_user, {'state': state}).fetchone() + sql_params = {'state': state} + token = self.db.execute(sqlite_requests.get_token_for_user, sql_params).fetchone() + with self.db: + self.db.execute(sqlite_requests.increment_usages, sql_params) + + return token def list_all_records(self) -> list: return self.db.execute(sqlite_requests.select_nickname_state_all).fetchall() diff --git a/capi/sqlite_requests.py b/capi/sqlite_requests.py index 98d2f51..8cde496 100644 --- a/capi/sqlite_requests.py +++ b/capi/sqlite_requests.py @@ -8,7 +8,8 @@ schema = """create table if not exists authorizations ( expires_in text, timestamp_got_expires_in text, nickname text unique, - refresh_tries int default 0 + refresh_tries int default 0, + usages int default 0 );""" insert_auth_init = """insert into authorizations @@ -48,3 +49,5 @@ from authorizations where state = :state;""" select_nickname_state_all = """select nickname, state from authorizations where nickname is not null;""" del_orphans = """delete from authorizations where nickname is null;""" + +increment_usages = "update authorizations set usages = usages + 1 where state = :state;"