Files
ShortMe-URL-Shortener/app/server/routes/internal/shorten_url.py
2021-03-24 15:11:34 +02:00

41 lines
1.2 KiB
Python

# ------- standard library imports -------
import json
import requests
# ------- 3rd party imports -------
import flask
from flask import Blueprint, request, redirect, url_for
# ------- local imports -------
from app import app
shorten_url_blueprint = Blueprint('shorten_url_blueprint', __name__, template_folder='templates')
@shorten_url_blueprint.route('/shorten', methods=['POST'])
def shorten_url():
base_url = flask.url_for("index_blueprint.index", _external=True)
original_url = request.form['original_url']
shorten_endpoint = base_url + 'api/shorten'
params = {
'url': original_url
}
headers = {
'Authorization': f'Bearer {app.app.secret_key}'
}
response = requests.post(shorten_endpoint, headers=headers, params=params)
if response.status_code == 200:
response = json.loads(response.text)
short_url = response['short_url']
original_url = response['original_url']
return redirect(url_for('your_short_url_blueprint.your_short_url',
short_url=short_url,
original_url=original_url))
else:
return redirect(url_for('error_blueprint.error'))