You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

105 lines
3.8 KiB

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")