def remove(self, bag_name, item_name=None):
        if not self.authenticated:
            return

        bag_name = self._bag_adapter.revert(bag_name)
        if item_name:
            obj = DataBagItem(bag_name, item_name, api=self._api)
        else:
            obj = DataBag(bag_name, api=self._api)

        if obj.exists:
            obj.delete(api=self._api)
    def edit_databag_item(self, bag_name, old_id, data):
        if not self.authenticated:
            return

        bag_name = self._bag_adapter.revert(bag_name)

        new_id = data.get('id')
        item = DataBagItem(bag_name, new_id, api=self._api)
        item.raw_data = data
        item.save()

        # change in ID -> remove previous item
        if new_id != old_id:
            obj = DataBagItem(bag_name, old_id, api=self._api)
            if obj.exists:
                obj.delete(api=self._api)