MCPcopy Create free account
hub / github.com/alphagov/notifications-api / init_app

Function init_app

app/__init__.py:406–451  ·  view source on GitHub ↗
(app)

Source from the content-addressed store, hash-verified

404def init_app(app):
405 @app.before_request
406 def record_request_details():
407 g.start = monotonic()
408 g.endpoint = request.endpoint
409
410 @app.after_request
411 def after_request(response):
412 response.headers.add("Access-Control-Allow-Origin", "*")
413 response.headers.add("Access-Control-Allow-Headers", "Content-Type,Authorization")
414 response.headers.add("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE")
415 response.headers.add("X-Content-Type-Options", "nosniff")
416 response.headers.add("X-Frame-Options", "SAMEORIGIN")
417 response.headers.add("X-Permitted-Cross-Domain-Policies", "none")
418 response.headers.add("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload")
419 response.headers.add("Cache-Control", "no-store, no-cache, private, must-revalidate")
420 return response
421
422 @app.teardown_appcontext
423 def teardown_session_bulk(exc):
424 db.session_bulk.remove()
425
426 @app.errorhandler(Exception)
427 def exception(error):
428 app.logger.exception(error)
429 # error.code is set for our exception types.
430 msg = getattr(error, "message", str(error))
431 code = getattr(error, "code", 500)
432 return jsonify(result="error", message=msg), code
433
434 @app.errorhandler(EventletTimeout)
435 def eventlet_timeout(error):
436 app.logger.exception(error)
437 return jsonify(result="error", message="Timeout serving request"), 504
438
439 @app.errorhandler(WerkzeugHTTPException)
440 def werkzeug_exception(e):
441 return make_response(jsonify(result="error", message=e.description), e.code, e.get_headers())
442
443 @app.errorhandler(404)
444 def page_not_found(e):
445 msg = e.description or "Not found"
446 return jsonify(result="error", message=msg), 404
447
448
449def create_uuid():
450 return str(uuid.uuid4())
451
452
453def create_random_identifier():
454 return "".join(random.choice(string.ascii_uppercase + string.digits) for _ in range(16))

Callers 2

app_for_testFunction · 0.90
create_appFunction · 0.85

Calls

no outgoing calls

Tested by 1

app_for_testFunction · 0.72