def update_lot_price(owner_id, bid_id, price): owner = UserStorage.get_by_id(owner_id) lot = LotStorage.get_by_id(bid_id) if owner != lot.owner: raise InvalidOwnership if LotStorage.lot_is_sold(lot): raise LotHasBeenSold return LotStorage.update_price(lot, price)
def update_bid_price(bidder_id, bid_id, price): bidder = UserStorage.get_by_id(bidder_id) bid = BidStorage.get_by_id(bid_id) if bidder != bid.bidder: raise InvalidOwnership if bid.accepted: raise BidHasBeenAccepted return BidStorage.update_price(bid, price)
def delete_lot(owner_id, lot_id): owner = UserStorage.get_by_id(owner_id) lot = LotStorage.get_by_id(lot_id) if owner != lot.owner: raise InvalidOwnership if not LotStorage.lot_is_sold(lot): return LotStorage.delete else: raise LotHasBeenSold
def accept_bid(owner_id, bid_id): owner = UserStorage.get_by_id(owner_id) bid = BidStorage.get_by_id(bid_id) real_owner = BidStorage.get_lot_owner(bid) if owner != real_owner: raise InvalidOwnership if LotStorage.lot_is_sold(bid.lot): raise return BidStorage.accept_by_lot_owner(bid)
def create_bid(bidder_id, lot_id, price): bidder = UserStorage.get_by_id(bidder_id) lot = LotStorage.get_by_id(lot_id) return BidStorage.create(bidder, lot, price)
def get_my_bids(bidder_id): bidder = UserStorage.get_by_id(bidder_id) return BidStorage.get_by_bidder(bidder)
def delete_animal(owner_id, animal_id): owner = UserStorage.get_by_id(owner_id) animal = AnimalStorage.get_by_id(animal_id) if owner != animal: raise InvalidOwnership return AnimalStorage.delete(animal)
def get_my_lots(owner_id): owner = UserStorage.get_by_id(owner_id) return LotStorage.get_by_owner(owner)
def delete_bid(bidder_id, bid_id): bidder = UserStorage.get_by_id(bidder_id) bid = BidStorage.get_by_id(bid_id) if bid.bidder != bidder: raise InvalidOwnership return BidStorage.delete(bid)
def get_balance(user_id): user = UserStorage.get_by_id(user_id) balance = UserBalanceStorage.get_user_balance(user) return balance
def create_lot(owner_id, animal_id, price): animal = AnimalStorage.get_by_id(animal_id) owner = UserStorage.get_by_id(owner_id) if owner != animal.owner: raise InvalidOwnership return LotStorage.create(animal, price)
def get_lots_bid(owner_id, lot_id): owner = UserStorage.get_by_id(owner_id) lot = LotStorage.get_by_id(lot_id) if lot.owner != owner: raise InvalidOwnership return BidStorage.get_by_lot(lot)
def create_animal(owner_id, animal_type, breed, nickname): owner = UserStorage.get_by_id(owner_id) return AnimalStorage.create(owner, animal_type, breed, nickname)