def delete(self):
        model = request.environ["sqlalchemy.model"]
        db = request.environ["sqlalchemy.session"]

        result = {}
        for id in request.params.getall('id'):
            try:
                item = db.query(model.IncomeCategory).filter_by(uid=id).one()
            except InvalidRequestError:
                result[id] = {
                    "deleted" : False,
                    "message": Messages.elementNotFound(key=id)
                }
                continue

            if (db.query(model.BalanceChange).filter_by(income_category_uid=item.uid).count() > 0):
                result[item.uid] = { 
                    "deleted" : False,
                    "message" : Messages.incomeCategoryIsInUse(id=item.uid)
                }
            else:
                try:
                    db.delete(item)
                    db.commit()
                    result[item.uid] = {
                        "deleted" : True,
                    }
                except Exception, e:
                    result[item.uid] = {
                        "deleted" : False,
                        "message" : Messages.failedToDelete(exception=e)
                    }