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
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