示例#1
0
    def create_expense(user, date, amount, name, category):
        """

        """
        assert isinstance(user, UserEntity)
        assert isinstance(date, datetime.date)
        assert isinstance(amount, long)
        assert isinstance(name, unicode)
        assert isinstance(category, unicode)
        assert amount > 0
        assert name
        assert category

        expense_entity = ExpenseEntity(
            user,
            date,
            amount,
            name,
            category
        )

        ExpenseDAO.save(expense_entity)
        ExpenseDAO.flush()

        return expense_entity.id
示例#2
0
    def calculate_spend_for_range(user, start_date, end_date):
        """

        """
        assert isinstance(user, UserEntity)
        assert isinstance(start_date, datetime.datetime)
        assert isinstance(end_date, datetime.datetime)
        assert start_date <= end_date

        return sum(x.amount for x in ExpenseDAO.select_all_by_user_date_range(user, start_date, end_date))
示例#3
0
    def select_expenses(user, limit, offset):
        """

        """
        assert isinstance(user, UserEntity)
        assert isinstance(limit, int)
        assert isinstance(offset, int)
        assert limit > 0
        assert offset >= 0

        return ExpenseDAO.select_all_limited_and_offset_by_user(user, limit, offset)
示例#4
0
    def select_expense(user, expense_id):
        """
        """
        assert isinstance(user, UserEntity)
        assert isinstance(expense_id, unicode)
        assert expense_id

        try:
            expense_entity = ExpenseDAO.select_by_id(expense_id)
        except NoResultFound:
            raise ResourceNotFoundException()

        if expense_entity.user != user:
            raise ResourceNotFoundException()

        return expense_entity