def post(odata): curr_session = db_session() tobj = CrudObj(**odata) curr_session.add(tobj) curr_session.commit() tobjstr = tobj.dump() return tobjstr, 201 #note: tobj.dump() here causes {} return, not sure why?!?
def close(paydesk_id=None, cart_id=None): try: dbs = db_session() oldCart = dbs.query(Cart).filter(Cart.paydesk_id == paydesk_id, Cart.status == "OPEN").one_or_none() oldCart.status = "CLOSED" msg = { "msgtype": "INFO", "msgid": 0, "text": "Cart closed", "info": "Cart %d closed" % (oldCart.id) } newCart = Cart(paydesk_id=paydesk_id, status="OPEN") ret = dbs.add(newCart) dbs.commit() articles = dbs.query(Article).filter( Article.paydesk_id == paydesk_id, Article.cart_id == newCart.id).order_by( Article.scantime.desc()).all() return { "Msg": msg, "Cart": newCart.dump(), "Articles": [p.dump() for p in articles] }, 200 except Exception as ex: msg = { "msgtype": "INFO", "msgid": 0, "text": "Cart closed", "info": "Cart %d closed" % (oldCart.id) } return {"Msg": msg}, 400
def opencart(paydesk_id=None): try: msg = { "msgtype": "ERROR", "msgid": 2, "text": "Attempt to open cart", "info": "unexpected error" } if paydesk_id is None: raise Exception_InvalidPaydesk() dbs = db_session() cart = dbs.query(Cart).filter(Cart.paydesk_id == paydesk_id, Cart.status == "OPEN").one_or_none() if cart == None: cart = Cart(paydesk_id=paydesk_id, status="OPEN") ret = dbs.add(cart) dbs.commit() msg = { "msgtype": "INFO", "msgid": 0, "text": "Cart created", "info": "Cart %d created" % (cart.id) } else: msg = { "msgtype": "INFO", "msgid": 1, "text": "Cart re-opend", "info": "Cart %d reopend" % (cart.id) } articles = dbs.query(Article).filter( Article.paydesk_id == paydesk_id, Article.cart_id == cart.id).order_by( Article.scantime.desc()).all() return { "Msg": msg, "Cart": cart.dump(), "Articles": [p.dump() for p in articles] }, 200 except Exception as ex: msg = { "msgtype": "ERROR", "msgid": 0, "text": "Severe Error", "info": "" } return msg, 400