This commit is contained in:
2024-04-15 22:03:02 +00:00
parent 3e57c393c2
commit e4c6d10781
19 changed files with 507 additions and 46 deletions

View File

@@ -1,22 +1,27 @@
from dishka.integrations.flask import FromDishka, inject
from flask import Blueprint, jsonify, request
from protocols.models import KeyDTO
from usecase.add import PostKey
from usecase.get import GetKey
from usecase.put import PutKey
from flask import Blueprint, abort, jsonify, request
from flask_demo_api.protocols.models import KeyDTO
from flask_demo_api.usecase.add import PostKey
from flask_demo_api.usecase.delete import DelKey
from flask_demo_api.usecase.get import GetKey
from flask_demo_api.usecase.put import PutKey
key_bp = Blueprint("key_bp", __name__)
@key_bp.route("/", methods=["POST"])
@inject
def past_key(usecase: FromDishka[PostKey]):
json_data = request.get_json()
if json_data:
result = usecase(request=KeyDTO(key=json_data))
result = usecase(
request=KeyDTO(key=json_data.get("key"), val=json_data.get("val"))
)
return (
jsonify({"message": "Received JSON data successfully", "data": result}),
200,
jsonify({"message": "Ok", "data": result}),
201,
)
else:
return jsonify({"message": "No JSON data received"}), 400
@@ -29,23 +34,43 @@ def get_key(usecase: FromDishka[GetKey]):
if request_data:
result = usecase(request=KeyDTO(key=request_data))
if result is None:
abort(404, "Key not found")
return (
jsonify({"message": "Received JSON data successfully", "data": result}),
jsonify({"message": "Ok", "data": result}),
200,
)
else:
return jsonify({"message": "No GET parameters received"}), 400
abort(400, "Invalid GET parameters")
@key_bp.route("/", methods=["PUT"])
@inject
def put_key(usecase: FromDishka[PutKey]):
json_data = request.get_json()
if json_data:
result = usecase(request=KeyDTO(key=json_data))
result = usecase(
request=KeyDTO(key=json_data.get("key"), val=json_data.get("val"))
)
return (
jsonify({"message": "Received JSON data successfully", "data": result}),
jsonify({"message": "Updated", "data": result}),
200,
)
else:
return jsonify({"message": "No JSON data received"}), 400
@key_bp.route("/", methods=["DELETE"])
@inject
def delete_key(usecase: FromDishka[DelKey]):
json_data = request.get_json()
if json_data:
usecase(request=KeyDTO(key=json_data.get("key"), val=json_data.get("val")))
return (
jsonify({"message": "Deleted"}),
200,
)
else: