from flask import Blueprint, json, request, url_for, Response, make_response from database import db_session, init_db from models import Warenkorb, Produkt, WarenkorbProdukt from sqlalchemy import func, desc, asc, or_ from flask_login import current_user from datetime import datetime, timedelta, date import requests cart_page = Blueprint('cart_pages', __name__, url_prefix="/cart", template_folder='templates') def _convert_to_JSON(result): """Convert result object to a JSON web request.""" response = make_response(json.dumps(result)) response.headers['Access-Control-Allow-Origin'] = "*" response.mimetype = "application/json" return response @cart_page.route("/create", methods=['POST']) def createcart(): check = request.form.get('check') if check == "167209": user_id = 9999999 # anonymous if current_user.is_authenticated: user_id = current_user.get_id() newcart = Warenkorb(user_id) db_session.add(newcart) db_session.commit() db_session.flush() return _convert_to_JSON(newcart.id) return _convert_to_JSON("fail") @cart_page.route("/add", methods=['POST']) def addtocart(): quant = request.form.get('quant') produkt_id = request.form.get('produktid') warenkorb_id = request.form.get('korbid') if quant and produkt_id and warenkorb_id: exist = WarenkorbProdukt.query.filter_by(warenkorb_id=warenkorb_id).filter_by(produkt_id=produkt_id).first() if exist: exist.quant = exist.quant + int(quant) db_session.commit() else: addprod = WarenkorbProdukt(quant,produkt_id,warenkorb_id) db_session.add(addprod) db_session.commit() return _convert_to_JSON("success") return _convert_to_JSON("fail") @cart_page.route("/changequant", methods=['POST']) def changequant(): quant = request.form.get('quant') produkt_id = request.form.get('produktid') warenkorb_id = request.form.get('korbid') if quant and produkt_id and warenkorb_id: exist = WarenkorbProdukt.query.filter_by(warenkorb_id=warenkorb_id).filter_by(produkt_id=produkt_id).first() if exist: exist.quant = quant db_session.commit() return _convert_to_JSON("success") return _convert_to_JSON("fail") @cart_page.route("/remove", methods=['POST']) def removefromcart(): produkt_id = request.form.get('produktid') warenkorb_id = request.form.get('korbid') if produkt_id and warenkorb_id: exist = WarenkorbProdukt.query.filter_by(warenkorb_id=warenkorb_id).filter_by(produkt_id=produkt_id).first() if exist: exist.quant = 0 db_session.commit() return _convert_to_JSON("success") return _convert_to_JSON("fail") @cart_page.route("/getcart", methods=['POST']) def getcart(): warenkorb_id = request.form.get('korbid') if warenkorb_id: produkte = WarenkorbProdukt.query.filter_by(warenkorb_id=warenkorb_id).all() if produkte: korb=dict() i=0 for produkt in produkte: korb[i]=[produkt.quant,produkt.produkt_id] i=i+1 return _convert_to_JSON(korb) return _convert_to_JSON("leer") return _convert_to_JSON("fail") @cart_page.route("/getprodukt", methods=['POST']) def getprodukt(): produkt_id = request.form.get('produktid') if produkt_id: produkt = Produkt.query.filter_by(id=produkt_id).first() return { 'id': produkt.id, 'preis': produkt.preis, 'titel': produkt.titel, 'kurzbeschreibung': produkt.kurzbeschreibung, 'bildlink': produkt.bildlink } #return _convert_to_JSON(produkt) return _convert_to_JSON("fail")