made api runable
This commit is contained in:
parent
2f85661a8b
commit
3f756292b2
|
|
@ -1,14 +1,14 @@
|
|||
from flask_restful import Resource
|
||||
from flask import session, Response, request
|
||||
from flask import session, Response, request, make_response, jsonify
|
||||
import uuid
|
||||
|
||||
from src.services import BasketService
|
||||
|
||||
from services.BasketService import BasketService
|
||||
|
||||
# API has not been tested
|
||||
class Basket(Resource):
|
||||
basket_service = BasketService()
|
||||
|
||||
def get_session_id():
|
||||
def get_session_id(self):
|
||||
# first interaction with server sets session_id
|
||||
# would need to research if this is ideal
|
||||
return str(uuid.uuid4())
|
||||
|
|
@ -16,10 +16,8 @@ class Basket(Resource):
|
|||
def get(self):
|
||||
if "session_id" not in session:
|
||||
session["session_id"] = self.get_session_id()
|
||||
return Response(
|
||||
{"total": self.basket_service.total()}, mimetype="application/json"
|
||||
)
|
||||
|
||||
total = self.basket_service.total(session["session_id"])
|
||||
return make_response(jsonify({'total': total}), 200)
|
||||
def post(self):
|
||||
# expects something similar: {"items": [{"item_id": abc002}]}
|
||||
|
||||
|
|
@ -28,4 +26,4 @@ class Basket(Resource):
|
|||
jsonData = request.get_json(force=True)
|
||||
for entry in jsonData["items"]:
|
||||
self.basket_service.scan(entry["item_id"])
|
||||
return Response(HTTPStatus=201)
|
||||
return make_response(201)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ app = Flask(__name__)
|
|||
app.secret_key = "SUPER_DUPER_BAD_SECRET_KEY"
|
||||
api = Api(app)
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
api.add_resource(BasketEndpoint.Basket, "/api/v1/basket/")
|
||||
api.add_resource(BasketEndpoint.Basket, "/api/v1/basket/", "/api/v1/basket")
|
||||
|
||||
|
||||
@app.route("/")
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ class BasketService:
|
|||
# but could be considered unfriendly towards consumers
|
||||
def _round_up(val: float):
|
||||
return math.ceil(val * 100) / 100
|
||||
if sessionID not in self.baskets:
|
||||
return 0
|
||||
items = self.baskets[sessionID]
|
||||
prices = self.dealsService.get_items_with_final_prices(items)
|
||||
return _round_up(sum([item.price for item in prices]))
|
||||
|
|
|
|||
Loading…
Reference in New Issue