def add(self): model = request.environ["sqlalchemy.model"] db = request.environ["sqlalchemy.session"] try: name = request.params['name'] except: return { "failure": Messages.invalidArguments() } if name == "": return { "failure": Messages.invalidArguments() } try: user = db.query(model.AuthenticatedUser).filter_by(uid = h.authenticated_user().uid).one() balance = model.Balance(name = name,) user_balance = model.UserBalance(user_uid=h.authenticated_user().uid, writable=True) balance.users.append(user_balance) user.balances.append(user_balance) db.save(balance) # ensure we set writable to true (needed only with sqlite3) #ub = db.query(model.UserBalance).filter_by(user_uid=session[BaseController.AUTHENTICATED_USER], balance_uid=balance.uid).one() #ub.writable = True #db.save(ub) db.commit() except IntegrityError, e: return { "failure": Messages.primaryKeyViolation() }
def add(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() } try: with localcontext() as ctx: ctx.prec = 2 try: amount = h.parse_decimal(request.params['amount']) except NumberFormatError: return { "failure": Messages.invalidCurrencyFormat() } expense_date = parser.parse(request.params['occurred_on']) income_category_uid = None expense_category_uid = None if (int(request.params['is_income']) >= 0): income_category_uid = int(request.params['income_category_uid']) is_income = True else: expense_category_uid = int(request.params['expense_category_uid']) is_income = False except: return { "failure": Messages.invalidArguments() } tags = request.params.get('tags', '') try: description = request.params['description'] except: description = "" try: bc = model.BalanceChange( amount = amount, description = description, balance_uid = balance_uid, user_uid = h.authenticated_user().uid, expense_category_uid = expense_category_uid, occurred_on = expense_date, is_income = is_income, income_category_uid = income_category_uid ) ops = Operations(db, model) ops.change_tags_from_string(bc, tags) ops.save_balance_change(bc) except IntegrityError, e: return { "failure": Messages.primaryKeyViolation() }
def add(self): model = request.environ["sqlalchemy.model"] db = request.environ["sqlalchemy.session"] name = request.params.get('name') if not name: return { "failure": Messages.invalidArguments() } try: ec = model.IncomeCategory(name = name,) db.save(ec) db.commit() except IntegrityError, e: return { "failure": Messages.primaryKeyViolation() }
def add(self): db = self.get_sa_session() model = self.get_sa_model() try: name = request.params['name'] except: return { "failure": Messages.invalidArguments() } if name == "": return { "failure": Messages.invalidArguments() } try: ec = model.ChangeCategory(name = name,) db.save(ec) db.commit() except IntegrityError, e: return { "failure": Messages.primaryKeyViolation() }
def add(self): db = request.environ['sqlalchemy.session'] model = request.environ['sqlalchemy.model'] try: name = request.params['name'] except: return { "failure": Messages.invalidArguments() } if name == "": return { "failure": Messages.invalidArguments() } try: ec = model.ExpenseCategory(name = name,) db.save(ec) db.commit() except IntegrityError, e: return { "failure": Messages.primaryKeyViolation() }
def add(self): model = request.environ["sqlalchemy.model"] db = request.environ["sqlalchemy.session"] name = request.params.get("name") if not name: return {"failure": Messages.invalidArguments()} try: user = db.query(model.AuthenticatedUser).filter_by(uid=h.authenticated_user().uid).one() balance = model.Balance(name=name) user_balance = model.UserBalance(user_uid=h.authenticated_user().uid, writable=True) balance.users.append(user_balance) user.balances.append(user_balance) db.save(balance) db.commit() except IntegrityError, e: return {"failure": Messages.primaryKeyViolation()}