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