Hiring-Task-Shy-Badger/ShyBadger/src/endpoints/BasketEndpoint.py

30 lines
1.0 KiB
Python

from flask_restful import Resource
from flask import session, Response, request, make_response, jsonify
import uuid
from services.BasketService import BasketService
# API has not been tested
class Basket(Resource):
basket_service = BasketService()
def get_session_id(self):
# 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()
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}]}
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 make_response(201)