Ejemplo n.º 1
0
    def build_update_transaction(cls, owner, profile, listing, bid, item_ids, public_msg, private_msg, currency_val=0):
	if not profile.owns_all(uid for uid, item in item_ids):
	    raise ValueError('Incorrect ownership.')
	schema = json_loads(fetch.schema())
	bid.message_public = public_msg
	bid.message_private = private_msg
        bid.currency_val = currency_val
	bid.put()
	item_types = item_type_map(schema)
	for uid, item in item_ids:
	    uid = str(uid)
	    bid_item = BidItem(
		parent=bid,
		uniqueid=uid,
		defindex=item['defindex'],
		source=json_dumps(item),
		item_type_name=item_types[item['defindex']],
		listing=listing,
		bid=bid)
	    bid_item.put()
	key = bid.key()
	queue_tool.bang_counters({'bid_items':len(item_ids)}, transactional=True)
	## we don't re-queue the bid verification because the
	## verification script will pick up all of the items when it
	## runs.
	queue_tool.notify_bid({'bid':key, 'update':True}, transactional=True)
	return key
Ejemplo n.º 2
0
    def build_transaction(cls, owner, profile, listing, item_ids, public_msg, private_msg, currency_val):
	if not cls.lazy_verify:
	    if not profile.owns_all(uid for uid, item in item_ids):
		raise ValueError('Incorrect ownership.')
	schema = json_loads(fetch.schema())
	bid = cls(owner=owner, listing=listing, message_private=private_msg, message_public=public_msg, currency_val=currency_val)
	key = bid.put()
	item_types = item_type_map(schema)
	for uid, item in item_ids:
	    uid = str(uid)
	    bid_item = BidItem(
		parent=bid,
		uniqueid=uid,
		defindex=item['defindex'],
		source=json_dumps(item),
		item_type_name=item_types[item['defindex']],
		listing=listing,
		bid=bid)
	    bid_item.put()
	queue_tool.bang_counters({'bids':1, 'bid_items':len(item_ids)}, transactional=True)
	queue_tool.reverify_items({'key':key, 'action':'init', 'type':'bid'}, transactional=True)
	queue_tool.notify_bid({'bid':key, 'update':False}, transactional=True)
	return key