FID as main identifier, not nickname

Because user can don't have a game so no nickname, but his
FDEV tokens still suits for not CAPI requests (i.e. squadrons api)
This commit is contained in:
norohind committed 2022-02-21 00:31:46 +03:00
1 parent d50df50ca1
commit b6392f8d20
8 files changed
+192 -35

No files matched your search

+52
View File
@@ -0,0 +1,52 @@
import sqlite3
import capi
db = sqlite3.connect('companion-api.sqlite')
backup_table_request = "ALTER TABLE authorizations RENAME TO authorizations_bak;"
restore_table_request = """
INSERT INTO authorizations (
code_verifier,
state,
timestamp_init,
code,
access_token,
refresh_token,
expires_in,
timestamp_got_expires_in,
nickname,
refresh_tries,
usages
)
SELECT
code_verifier,
state,
timestamp_init,
code,
access_token,
refresh_token,
expires_in,
timestamp_got_expires_in,
nickname,
refresh_tries,
usages
FROM authorizations_bak;
"""
drop_old_table_request = "drop table authorizations_bak;"
with db:
db.execute(backup_table_request)
db.execute(capi.sqlite_requests.schema)
db.execute(restore_table_request)
db.execute(drop_old_table_request)
db.close() # schema migration ended, begin inserting fids
all_records = capi.capi_authorizer.list_all_records()
for record in all_records:
if record['fid'] is None and record['nickname'] is not None:
fid = capi.utils.get_fid(record['access_token'])
capi.capi_authorizer.model.set_fid(fid, record['state'])