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}")
Ejemplo n.º 2
0
async def predict(request):
    item = Item.from_dict(request.json)
    y = predict_item(item)
    return json({'y': y})
Ejemplo n.º 3
0
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())