from flask import jsonify, abort, request from flask_jwt_extended import jwt_required, get_jwt_identity from app.api import bp_cart from app.services.cart_service import CartService @bp_cart.route('', methods=['GET']) @jwt_required() def show_cart(): user_id = get_jwt_identity() result, status_code = CartService.show_cart(user_id) return result, status_code @bp_cart.route('/add/', methods=['PUT']) @jwt_required() def add_to_cart(product_id: int): user_id = get_jwt_identity() count = request.args.get('count', default=1, type=int) if count < 1: return abort(400) result, status_code = CartService.add_to_cart(user_id, product_id, count) return result, status_code @bp_cart.route('/remove/', methods=['DELETE']) @jwt_required() def remove_from_cart(product_id: int): user_id = get_jwt_identity() result, status_code = CartService.delete_from_cart(user_id, product_id) return result, status_code @bp_cart.route('/update/', methods=['PUT']) @jwt_required() def update_count_in_cart(product_id: int): user_id = get_jwt_identity() count = request.args.get('count', type=int) if not count: return abort(400) result, status_code = CartService.update_count(user_id, product_id, count) return result, status_code @bp_cart.route('/purchase', methods=['GET']) @jwt_required() def purchase(): user_id = get_jwt_identity() result, status_code = CartService.purchase(user_id) return result, status_code