(app)
| 404 | def 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 | |
| 449 | def create_uuid(): |
| 450 | return str(uuid.uuid4()) |
| 451 | |
| 452 | |
| 453 | def create_random_identifier(): |
| 454 | return "".join(random.choice(string.ascii_uppercase + string.digits) for _ in range(16)) |
no outgoing calls