def delete(self): result = {} for id in request.params.getall('id'): try: item = self.dbFacade().balances.changeDao.find_by_uid(id, options=[eagerload('balance'), eagerload('transfer')]) if item is None: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue if not item.balance or not item.balance.can_modify_balance(h.authenticated_user().uid) \ or (item.transfer and not item.transfer.balance) \ or (item.transfer and not item.transfer.balance.can_modify_balance(h.authenticated_user().uid)): result[id] = { "deleted" : False, "message": Messages.permissionDenied() } continue if item.transfer: self.dbFacade().db.delete(item.transfer) self.dbFacade().db.delete(item) self.dbFacade().db.commit() result[id] = { "deleted" : True } except Exception, e: result[id] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e), }
def delete(self): db = self.get_sa_session() model = self.get_sa_model() result = {} for id in request.params.getall('id'): try: item = db.query(model.ChangeCategory).filter_by(uid=id).one() except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue if (db.query(model.BalanceChange).filter_by(change_category_uid=item.uid).count() > 0): result[item.uid] = { "deleted" : False, "message" : Messages.changeCategoryInUse(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), }
def delete(self, balance_uid): model = request.environ['sqlalchemy.model'] db = request.environ['sqlalchemy.session'] if not Operations(db, model).can_modify_balance(h.authenticated_user().uid, balance_uid): return { "failure": Messages.permissionDenied() } result = {} for id in request.params.getall('id'): try: item = db.query(model.BalanceChange).filter_by(uid=id).filter_by(balance_uid=balance_uid).one() except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue else: try: Operations(db, model).delete_balance_change(item) result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e), }
def delete(self): dbFacade = self.dbFacade() result = {} for id in request.params.getall('id'): try: item = dbFacade.balances.balanceDao.find_by_uid(id) if not item or not item.can_modify_balance(h.authenticated_user().uid): result[id] = { "deleted": False, "message": Messages.permissionDenied() } continue except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue try: dbFacade.db.delete(item) dbFacade.db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e) }
def delete(self): model = self.get_sa_model() db = self.get_sa_session() result = {} for id in request.params.getall('id'): try: if not Operations(db, model).can_modify_balance(h.authenticated_user().uid, id): result[id] = { "deleted": False, "message": Messages.permissionDenied() } continue item = db.query(model.Balance).filter_by(uid=id).one() except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue try: db.delete(item) db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e) }
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) }
def category(self): dbFacade = self.dbFacade() result = {} category = dbFacade.balances.categoryDao.find_by_name(request.params.get('category')) if category is None: return { "failure": Messages.invalidArguments() } for id in request.params.getall('id'): try: item = dbFacade.balances.changeDao.find_by_uid(id, options=[eagerload('balance')]) if item is None: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue if not item.balance or not item.balance.can_modify_balance(h.authenticated_user().uid): result[id] = { "deleted" : False, "message": Messages.permissionDenied() } continue item.category = category.name dbFacade.db.commit() result[id] = { "modified" : True } except Exception, e: result[id] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e), }
def delete(self): result = {} try: category_name = request.params.get('name') category_tc = self.dbFacade().balances.categoryDao.find_by_name(category_name, h.authenticated_user().uid) if category_tc is None: return { "failure" : Messages.elementNotFound(key=category_name) } parent = self.dbFacade().balances.categoryDao.find_by_key(category_tc.parent, h.authenticated_user().uid) self.dbFacade().db.delete(category_tc) self._change_changes_category(category_name, parent.name) self.dbFacade().db.commit() except Exception, e: return { "failure" : Messages.failedToDelete(exception=e) }
def delete(self): dbFacade = self.dbFacade() result = {} for id in request.params.getall('id'): item = dbFacade.stocks.changeDao.find_by_uid(id) if item is None: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue try: dbFacade.db.delete(item) dbFacade.db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e) }