mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-30 22:42:28 -05:00
Update config
Source the configuration from an environment file, this way it is similar to how the aws environment works
This commit is contained in:
@@ -8,7 +8,6 @@ from flask import Flask, _request_ctx_stack
|
||||
from flask.ext.sqlalchemy import SQLAlchemy
|
||||
from flask_marshmallow import Marshmallow
|
||||
from werkzeug.local import LocalProxy
|
||||
from config import configs
|
||||
from utils import logging
|
||||
|
||||
|
||||
@@ -18,15 +17,14 @@ ma = Marshmallow()
|
||||
api_user = LocalProxy(lambda: _request_ctx_stack.top.api_user)
|
||||
|
||||
|
||||
def create_app(config_name, config_overrides=None):
|
||||
def create_app():
|
||||
application = Flask(__name__)
|
||||
|
||||
application.config['NOTIFY_API_ENVIRONMENT'] = config_name
|
||||
application.config.from_object(configs[config_name])
|
||||
application.config.from_object(os.environ['NOTIFY_API_ENVIRONMENT'])
|
||||
|
||||
db.init_app(application)
|
||||
ma.init_app(application)
|
||||
init_app(application, config_overrides)
|
||||
init_app(application)
|
||||
logging.init_app(application)
|
||||
|
||||
from app.service.rest import service as service_blueprint
|
||||
@@ -46,16 +44,7 @@ def create_app(config_name, config_overrides=None):
|
||||
return application
|
||||
|
||||
|
||||
def init_app(app, config_overrides):
|
||||
for key, value in app.config.items():
|
||||
if key in os.environ:
|
||||
app.config[key] = convert_to_boolean(os.environ[key])
|
||||
|
||||
if config_overrides:
|
||||
for key in app.config.keys():
|
||||
if key in config_overrides:
|
||||
app.config[key] = config_overrides[key]
|
||||
|
||||
def init_app(app):
|
||||
@app.before_request
|
||||
def required_authentication():
|
||||
if request.path != url_for('status.show_status'):
|
||||
@@ -72,51 +61,6 @@ def init_app(app, config_overrides):
|
||||
return response
|
||||
|
||||
|
||||
def convert_to_boolean(value):
|
||||
"""Turn strings to bools if they look like them
|
||||
|
||||
Truthy things should be True
|
||||
>>> for truthy in ['true', 'on', 'yes', '1']:
|
||||
... assert convert_to_boolean(truthy) == True
|
||||
|
||||
Falsey things should be False
|
||||
>>> for falsey in ['false', 'off', 'no', '0']:
|
||||
... assert convert_to_boolean(falsey) == False
|
||||
|
||||
Other things should be unchanged
|
||||
>>> for value in ['falsey', 'other', True, 0]:
|
||||
... assert convert_to_boolean(value) == value
|
||||
"""
|
||||
if isinstance(value, string_types):
|
||||
if value.lower() in ['t', 'true', 'on', 'yes', '1']:
|
||||
return True
|
||||
elif value.lower() in ['f', 'false', 'off', 'no', '0']:
|
||||
return False
|
||||
|
||||
return value
|
||||
|
||||
|
||||
def convert_to_number(value):
|
||||
"""Turns numeric looking things into floats or ints
|
||||
|
||||
Integery things should be integers
|
||||
>>> for inty in ['0', '1', '2', '99999']:
|
||||
... assert isinstance(convert_to_number(inty), int)
|
||||
|
||||
Floaty things should be floats
|
||||
>>> for floaty in ['0.99', '1.1', '1000.0000001']:
|
||||
... assert isinstance(convert_to_number(floaty), float)
|
||||
|
||||
Other things should be unchanged
|
||||
>>> for value in [0, 'other', True, 123]:
|
||||
... assert convert_to_number(value) == value
|
||||
"""
|
||||
try:
|
||||
return float(value) if "." in value else int(value)
|
||||
except (TypeError, ValueError):
|
||||
return value
|
||||
|
||||
|
||||
def get_api_version():
|
||||
build = 'n/a'
|
||||
build_time = "n/a"
|
||||
|
||||
Reference in New Issue
Block a user