def add_item_to_user(self, item_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()) item_doc_ref = self.firestore_db.collection( self.item_coll_name).document(item_name) item = Item.from_dict(item_doc_ref.get().to_dict()) if user.total_currency_value >= item.value: new_value = user.total_currency_value - item.value user.set_coins(*User.get_coins_from_value(new_value)) user_doc_ref.update({ u'inventory': firestore_api.ArrayUnion([item_doc_ref.path]), u'galleons': user.galleons, u'sickles': user.sickles, u'knuts': user.knuts }) return user # Return the new values else: raise InsufficientFundsException( f"You do not have enough wizard gold to purchase {item_name}")
async def predict(request): item = Item.from_dict(request.json) y = predict_item(item) return json({'y': y})
async def learn(request): item = Item.from_dict(request.json) learn_item(item) return json({})
def get_item(self, item_name: str) -> Item: snapshot = self.firestore_db.collection( self.item_coll_name).document(item_name).get() return Item.from_dict(snapshot.to_dict())