pickUp :: Text -> Int64 -> Text -> Handler Text
pickUp obj areaId urlHash = do
    item <- lookAtItemByUnique obj areaId
    itemsInInventory <- showInventory urlHash
    case item of
        Just (Entity itemKey itemVal) -> do
            case itemInInventory itemsInInventory (Entity itemKey itemVal) of
                True -> do return $ pack $ (unpack $ itemName itemVal) ++ " is already in your inventory."
                False -> do
                    case itemTakeable itemVal of
                        True -> do
                            _ <- insertItemWithStatus obj areaId urlHash "inventory"
                            return $ pack $ "Picked up " ++ (unpack $ itemName itemVal) ++ "."
                        False -> return $ pack "This item is not takeable."
        Nothing -> return "No such item in this Area."
pickUp :: Text -> Int64 -> Text -> Handler Text
pickUp obj areaId urlHash = do
    item <- lookAtItemByUnique obj areaId
    itemsInInventory <- showInventory urlHash
    case item of
        Just (Entity itemKey itemVal) -> do
            case itemInInventory itemsInInventory (Entity itemKey itemVal) of
                True -> do return $ pack $ (unpack $ itemName itemVal) ++ " is already in your inventory."
                False -> do
                    case itemTakeable itemVal of
                        True -> do
                            _ <- insertItemWithStatus obj areaId urlHash "inventory"
                            return $ pack $ "Picked up " ++ (unpack $ itemName itemVal) ++ "."
                        False -> return $ pack "This item is not takeable."
        Nothing -> return "No such item in this Area."
pickUp obj areaId urlHash = do
    item <- lookAtItemByUnique obj areaId
    itemsInInventory <- showInventory urlHash
    case item of
        Just (Entity itemKey itemVal) -> do
            case itemInInventory itemsInInventory (Entity itemKey itemVal) of
                True -> do return $ pack $ (unpack $ itemName itemVal) ++ " is already in your inventory."
                False -> do
                    case itemTakeable itemVal of
                        True -> do
                            _ <- insertItemWithStatus obj areaId urlHash "inventory"
                            return $ pack $ "Picked up " ++ (unpack $ itemName itemVal) ++ "."
                        False -> return $ pack "This item is not takeable."
        Nothing -> return "No such item in this Area."