示例#1
0
def load_expenses(user_id):
    if (request.method == 'GET'):
        expenses = db.session.query(Expense).filter(Expense.user_id == user_id)
        expenses_dict = {}
        for expense in expenses:
            expenses_dict[expense.id] = expense.to_dict()
        return {'expenses': expenses_dict}, 200
    elif (request.method == 'POST'):
        data = request.get_json()
        expense = Expense(description=data['description'],
                          amount=data['amount'],
                          category_id=data['category_id'],
                          user_id=user_id)
        db.session.add(expense)
        db.session.commit()
        expenses = db.session.query(Expense).filter(Expense.user_id == user_id)
        expenses_dict = {}
        for expense in expenses:
            expenses_dict[expense.id] = expense.to_dict()
        return {'expenses': expenses_dict}, 200
    elif (request.method == 'DELETE'):
        data = request.get_json()
        id = data['id']
        expense = Expense.query.filter(Expense.id == id).first()
        db.session.delete(expense)
        db.session.commit()
        expenses = db.session.query(Expense).filter(Expense.user_id == user_id)
        expenses_dict = {}
        for expense in expenses:
            expenses_dict[expense.id] = expense.to_dict()
        return {'expenses': expenses_dict}, 200
示例#2
0
def create_expense():
    print('in create_expense')
    data = request.get_json() or {}
    print('')
    if 'description' not in data or 'cost' not in data or 'user_id' not in data or 'event_id' not in data or 'datetime_recorded' not in data:
        print('bad request')
        return bad_request(
            'Must include description, cost, user_id, event_id, and datetime_recorded fields.'
        )
    expense = Expense()
    print('expense = Expense()')
    expense.from_dict(data)
    print('expense.from_dict')
    db.session.add(expense)
    print('session.add(expense)')
    db.session.commit()
    print('session.commit')
    response = jsonify(expense.to_dict())
    print('jsonify response')
    response.status_code = 201
    response.headers['Location'] = url_for('api.get_expense', id=expense.id)
    return response