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

30 lines
1.0 KiB
Python
Raw Normal View History

2024-08-15 16:21:53 +00:00
from flask_restful import Resource
2024-08-15 16:36:08 +00:00
from flask import session, Response, request, make_response, jsonify
2024-08-15 16:21:53 +00:00
import uuid
2024-08-15 16:36:08 +00:00
from services.BasketService import BasketService
2024-08-15 16:21:53 +00:00
2024-08-15 16:36:08 +00:00
# API has not been tested
2024-08-15 16:21:53 +00:00
class Basket(Resource):
basket_service = BasketService()
2024-08-15 16:36:08 +00:00
def get_session_id(self):
2024-08-15 16:21:53 +00:00
# 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()
2024-08-15 16:36:08 +00:00
total = self.basket_service.total(session["session_id"])
return make_response(jsonify({'total': total}), 200)
2024-08-15 16:21:53 +00:00
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"])
2024-08-15 16:36:08 +00:00
return make_response(201)