from flask import Flask, jsonify, request
from todoItem import TodoItem
from todoDao import TodoDao
app = Flask(__name__)
todo_dao = TodoDao('todo_example.db')
@app.route('/todos', methods=['POST'])
def add_todo():
data = request.get_json()
new_item = TodoItem(None, data['title'], data['is_completed'])
todo_dao.add_item(new_item)
return jsonify({"message": "Todo item created"}), 201
@app.route('/todos', methods=['GET'])
def get_all_todos():
items = todo_dao.get_all_items()
return jsonify([item.__dict__ for item in items]), 200
@app.route('/todos/<int:item_id>', methods=['GET'])
def get_todo(item_id):
item = todo_dao.get_item(item_id)
if item:
return jsonify(item.__dict__), 200
else:
return jsonify({"message": "Item not found"}), 404
@app.route('/todos/<int:item_id>', methods=['PUT'])
def update_todo(item_id):
data = request.get_json()
updated_item = TodoItem(item_id, data['title'], data['is_completed'])
if todo_dao.update_item(updated_item):
return jsonify({"message": "Item updated"}), 200
else:
return jsonify({"message": "Item not found or not updated"}), 404
@app.route('/todos/<int:item_id>', methods=['DELETE'])
def delete_todo(item_id):
if todo_dao.delete_item(item_id):
return jsonify({"message": "Item deleted"}), 200
else:
return jsonify({"message": "Item not found or not deleted"}), 404
def generate_testdata():
# Generate user
# TODO: Implement user generation
# Generate todo items
todo_dao.create_table()
todo_dao.add_item(TodoItem(1, 'Buy milk', False))
todo_dao.add_item(TodoItem(2, 'Buy eggs', False))
todo_dao.add_item(TodoItem(3, 'Buy bread', False))
todo_dao.add_item(TodoItem(4, 'Buy butter', False))
if __name__ == '__main__':
generate_testdata()
app.run()