|
# retoor <retoor@molodetz.nl>
|
|
|
|
from flask import Flask
|
|
from flask import jsonify
|
|
from flask import make_response
|
|
from flask import request
|
|
from flask.wrappers import Response
|
|
|
|
from src.calculator import add
|
|
from src.calculator import clamp
|
|
from src.calculator import clamp_to_byte
|
|
from src.calculator import subtract
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
@app.route('/add', methods=['GET'])
|
|
def add_route() -> Response:
|
|
try:
|
|
left = int(request.args['left'])
|
|
right = int(request.args['right'])
|
|
except (KeyError, TypeError, ValueError):
|
|
return make_response(jsonify({'error': 'Invalid or missing parameters'}), 400)
|
|
return make_response(jsonify({'result': add(left, right)}), 200)
|
|
|
|
|
|
@app.route('/subtract', methods=['GET'])
|
|
def subtract_route() -> Response:
|
|
try:
|
|
left = int(request.args['left'])
|
|
right = int(request.args['right'])
|
|
except (KeyError, TypeError, ValueError):
|
|
return make_response(jsonify({'error': 'Invalid or missing parameters'}), 400)
|
|
return make_response(jsonify({'result': subtract(left, right)}), 200)
|
|
|
|
|
|
@app.route('/clamp', methods=['GET'])
|
|
def clamp_route() -> Response:
|
|
try:
|
|
value = int(request.args['value'])
|
|
low = int(request.args['low'])
|
|
high = int(request.args['high'])
|
|
except (KeyError, TypeError, ValueError):
|
|
return make_response(jsonify({'error': 'Invalid or missing parameters'}), 400)
|
|
try:
|
|
result = clamp(value, low, high)
|
|
except ValueError:
|
|
return make_response(jsonify({'error': 'Invalid or missing parameters'}), 400)
|
|
return make_response(jsonify({'result': result}), 200)
|
|
|
|
|
|
@app.route('/clamp_to_byte', methods=['GET'])
|
|
def clamp_to_byte_route() -> Response:
|
|
try:
|
|
value = int(request.args['value'])
|
|
except (KeyError, TypeError, ValueError):
|
|
return make_response(jsonify({'error': 'Invalid or missing parameters'}), 400)
|
|
return make_response(jsonify({'result': clamp_to_byte(value)}), 200)
|