mirror of
https://github.com/norohind/FDEV-CAPI-Handler.git
synced 2026-10-25 01:06:03 +03:00
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:
8 files changed
+192
-35
No files matched your search
@@ -2,6 +2,7 @@ import falcon
|
||||
import waitress
|
||||
import json
|
||||
|
||||
import capi
|
||||
from capi import capi_authorizer
|
||||
import config
|
||||
from EDMCLogging import get_main_logger
|
||||
@@ -82,6 +83,29 @@ class TokenByNickname:
|
||||
capi_authorizer.delete_by_state(state)
|
||||
|
||||
|
||||
class TokenByFID:
|
||||
NOT_FOUND_DESCRIPTION = 'No such FID was found'
|
||||
|
||||
@falcon.before(check_secret)
|
||||
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, fid: str):
|
||||
resp.content_type = falcon.MEDIA_JSON
|
||||
|
||||
state = capi_authorizer.model.get_state_by_fid(fid)
|
||||
if state is None:
|
||||
raise falcon.HTTPNotFound(description=self.NOT_FOUND_DESCRIPTION)
|
||||
|
||||
tokens = capi.capi_authorizer.get_token_by_state(state)
|
||||
resp.text = json.dumps(tokens)
|
||||
|
||||
@falcon.before(check_secret)
|
||||
def on_delete(self, req: falcon.request.Request, resp: falcon.response.Response, fid: str):
|
||||
state = capi_authorizer.model.get_state_by_fid(fid)
|
||||
if state is None:
|
||||
raise falcon.HTTPNotFound(description=self.NOT_FOUND_DESCRIPTION)
|
||||
|
||||
capi_authorizer.delete_by_state(state)
|
||||
|
||||
|
||||
class CleanOrphanRecords:
|
||||
def on_post(self, req: falcon.request.Request, resp: falcon.response.Response):
|
||||
capi_authorizer.cleanup_orphans()
|
||||
@@ -91,7 +115,7 @@ class ListTokens:
|
||||
@falcon.before(check_secret)
|
||||
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response):
|
||||
resp.content_type = falcon.MEDIA_JSON
|
||||
resp.text = json.dumps(capi_authorizer.list_all_users())
|
||||
resp.text = json.dumps(capi_authorizer.list_all_valid_users())
|
||||
|
||||
|
||||
class RandomToken:
|
||||
@@ -100,7 +124,7 @@ class RandomToken:
|
||||
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response):
|
||||
resp.content_type = falcon.MEDIA_JSON
|
||||
import random
|
||||
list_users = capi_authorizer.list_all_users()
|
||||
list_users = capi_authorizer.list_all_valid_users()
|
||||
|
||||
if len(list_users) == 0:
|
||||
raise falcon.HTTPNotFound(description='No users in DB')
|
||||
@@ -117,6 +141,7 @@ application.add_route('/users/{state}', TokenByState()) # for legacy reasons
|
||||
application.add_route('/random_token', RandomToken()) # for legacy reasons, subject to decommissioning
|
||||
application.add_route('/users/by-state/{state}', TokenByState())
|
||||
application.add_route('/users/by-nickname/{nickname}', TokenByNickname())
|
||||
application.add_route('/users/by-fid/{fid}', TokenByFID())
|
||||
application.add_route('/users', ListTokens())
|
||||
application.add_route('/tools/clean-orphan-records', CleanOrphanRecords())
|
||||
|
||||
|
||||
Reference in new issue
Block a user