def sell_card(self, card_name: str, user_name: str): user_doc_ref = self.firestore_db.collection( self.user_coll_name).document(user_name) user = User.from_dict(user_doc_ref.get().to_dict()) user_owned_cards = [ref.split("/")[-1] for ref in user.cards] card_doc_ref = self.firestore_db.collection( self.card_coll_name).document(card_name) card = Card.from_dict(card_doc_ref.get().to_dict()) if card_name in user_owned_cards: new_value = user.total_currency_value + card.value user.set_coins(*User.get_coins_from_value(new_value)) user_doc_ref.update({ u'cards': firestore_api.ArrayRemove([card_doc_ref.path]), u'galleons': user.galleons, u'sickles': user.sickles, u'knuts': user.knuts }) return user # Return the new values else: raise UnownedItemException( "You cannot sell that card because you do not own it.", user=user)
def import_cards(file_path): with open(file_path) as oracle_cards: cards = json.load(oracle_cards) cards_len = len(cards) for i, card_dict in enumerate(cards): if (i + 1) % 100 == 0: print(f'{i + 1} of {cards_len}') card = Card.from_dict(card_dict) db.session.add(card) if (i + 1) % 500 == 0: db.session.commit() db.session.commit()
def get_card(self, card_name: str) -> Card: snapshot = self.firestore_db.collection( self.card_coll_name).document(card_name).get() return Card.from_dict(snapshot.to_dict())