diff --git a/app/__init__.py b/app/__init__.py index 7747cd6..68c20e1 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,5 +1,58 @@ # retoor 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)