mirror of
https://github.com/aljazceru/python-teos.git
synced 2025-12-17 14:14:22 +01:00
Updates docs and comments in api
This commit is contained in:
15
teos/api.py
15
teos/api.py
@@ -24,7 +24,7 @@ app = Flask(__name__)
|
|||||||
logger = Logger(actor="API", log_name_prefix=LOG_PREFIX)
|
logger = Logger(actor="API", log_name_prefix=LOG_PREFIX)
|
||||||
|
|
||||||
|
|
||||||
# TODO: UNITTEST
|
# NOTCOVERED: not sure how to monkey path this one. May be related to #77
|
||||||
def get_remote_addr():
|
def get_remote_addr():
|
||||||
"""
|
"""
|
||||||
Gets the remote client ip address. The HTTP_X_REAL_IP field is tried first in case the server is behind a reverse
|
Gets the remote client ip address. The HTTP_X_REAL_IP field is tried first in case the server is behind a reverse
|
||||||
@@ -53,7 +53,6 @@ class API:
|
|||||||
gatekeeper (:obj:`Watcher <teos.gatekeeper.Gatekeeper>`): a `Gatekeeper` instance in charge to gatekeep the API.
|
gatekeeper (:obj:`Watcher <teos.gatekeeper.Gatekeeper>`): a `Gatekeeper` instance in charge to gatekeep the API.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# TODO: UNITTEST
|
|
||||||
def __init__(self, inspector, watcher, gatekeeper):
|
def __init__(self, inspector, watcher, gatekeeper):
|
||||||
self.inspector = inspector
|
self.inspector = inspector
|
||||||
self.watcher = watcher
|
self.watcher = watcher
|
||||||
@@ -64,9 +63,11 @@ class API:
|
|||||||
"""
|
"""
|
||||||
Registers a user by creating a subscription.
|
Registers a user by creating a subscription.
|
||||||
|
|
||||||
The user is identified by public key.
|
Registration is pretty straightforward for now, since it does not require payments.
|
||||||
|
The amount of slots cannot be requested by the user yet either. This is linked to the previous point.
|
||||||
|
Users register by sending a public key to the proper endpoint. This is exploitable atm, but will be solved when
|
||||||
|
payments are introduced.
|
||||||
|
|
||||||
Currently subscriptions are free.
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
:obj:`tuple`: A tuple containing the response (``json``) and response code (``int``). For accepted requests,
|
:obj:`tuple`: A tuple containing the response (``json``) and response code (``int``). For accepted requests,
|
||||||
@@ -110,7 +111,6 @@ class API:
|
|||||||
|
|
||||||
return jsonify(response), rcode
|
return jsonify(response), rcode
|
||||||
|
|
||||||
# FIXME: UNITTEST
|
|
||||||
def add_appointment(self):
|
def add_appointment(self):
|
||||||
"""
|
"""
|
||||||
Main endpoint of the Watchtower.
|
Main endpoint of the Watchtower.
|
||||||
@@ -184,8 +184,6 @@ class API:
|
|||||||
logger.info("Sending response and disconnecting", from_addr="{}".format(remote_addr), response=response)
|
logger.info("Sending response and disconnecting", from_addr="{}".format(remote_addr), response=response)
|
||||||
return jsonify(response), rcode
|
return jsonify(response), rcode
|
||||||
|
|
||||||
# FIXME: THE NEXT TWO API ENDPOINTS ARE FOR TESTING AND SHOULD BE REMOVED / PROPERLY MANAGED BEFORE PRODUCTION!
|
|
||||||
# ToDo: #17-add-api-keys
|
|
||||||
def get_appointment(self):
|
def get_appointment(self):
|
||||||
"""
|
"""
|
||||||
Gives information about a given appointment state in the Watchtower.
|
Gives information about a given appointment state in the Watchtower.
|
||||||
@@ -279,7 +277,6 @@ class API:
|
|||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
# TODO: UNITTEST
|
|
||||||
def start(self):
|
def start(self):
|
||||||
"""
|
"""
|
||||||
This function starts the Flask server used to run the API. Adds all the routes to the functions listed above.
|
This function starts the Flask server used to run the API. Adds all the routes to the functions listed above.
|
||||||
@@ -295,7 +292,7 @@ class API:
|
|||||||
for url, params in routes.items():
|
for url, params in routes.items():
|
||||||
app.add_url_rule(url, view_func=params[0], methods=params[1])
|
app.add_url_rule(url, view_func=params[0], methods=params[1])
|
||||||
|
|
||||||
# Setting Flask log to ERROR only so it does not mess with out logging. Also disabling flask initial messages
|
# Setting Flask log to ERROR only so it does not mess with our logging. Also disabling flask initial messages
|
||||||
logging.getLogger("werkzeug").setLevel(logging.ERROR)
|
logging.getLogger("werkzeug").setLevel(logging.ERROR)
|
||||||
os.environ["WERKZEUG_RUN_MAIN"] = "true"
|
os.environ["WERKZEUG_RUN_MAIN"] = "true"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user