32 lines
967 B
Python
32 lines
967 B
Python
|
|
from flask_restful import Resource
|
||
|
|
from flask import session, Response, request
|
||
|
|
import uuid
|
||
|
|
|
||
|
|
from src.services import BasketService
|
||
|
|
|
||
|
|
|
||
|
|
class Basket(Resource):
|
||
|
|
basket_service = BasketService()
|
||
|
|
|
||
|
|
def get_session_id():
|
||
|
|
# first interaction with server sets session_id
|
||
|
|
# would need to research if this is ideal
|
||
|
|
return str(uuid.uuid4())
|
||
|
|
|
||
|
|
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"
|
||
|
|
)
|
||
|
|
|
||
|
|
def post(self):
|
||
|
|
# expects something similar: {"items": [{"item_id": abc002}]}
|
||
|
|
|
||
|
|
if "session_id" not in session:
|
||
|
|
session["session_id"] = self.get_session_id()
|
||
|
|
jsonData = request.get_json(force=True)
|
||
|
|
for entry in jsonData["items"]:
|
||
|
|
self.basket_service.scan(entry["item_id"])
|
||
|
|
return Response(HTTPStatus=201)
|