From 5bad309d7bd8baae10247a002485d2417c65c34b Mon Sep 17 00:00:00 2001 From: Lukas Brabec Date: Mar 04 2020 06:45:00 +0000 Subject: cors proxy endpoint --- diff --git a/oraculum/controllers/main.py b/oraculum/controllers/main.py index 49c2091..28eb370 100644 --- a/oraculum/controllers/main.py +++ b/oraculum/controllers/main.py @@ -21,11 +21,13 @@ from oraculum import app, cache from oraculum.data_providers import PROVIDERS from oraculum.utils import fedocal, schedule, blockerbugs, meetbot +import flask from flask import request, url_for, jsonify from werkzeug.contrib.cache import SimpleCache import urllib import itertools +import requests # FIXME: Move this into a proper config file @@ -105,6 +107,26 @@ def api_v1_actions_all(): return jsonify(resp) + +@app.route('/api/v1/proxy/') +def api_v1_proxy(url): + requests_function = { + 'GET': requests.get, + 'HEAD': requests.head, + 'POST': requests.post, + 'PUT': requests.put, + 'DELETE': requests.delete, + 'PATCH': requests.patch, + 'OPTIONS': requests.options, + }[flask.request.method] + request = requests_function(url, stream=True, params=flask.request.args) + response = flask.Response(flask.stream_with_context(request.iter_content()), + content_type=request.headers['content-type'], + status=request.status_code) + + return response + + @app.route('/') @app.route('/index') def index():