Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions 06.Line-bot-fly-flask/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,13 @@ def handle_message(event):
# 建立一個名為 `tasks` 的資料表,用來儲存待辦事項
tasks = [
{
'id': 0,
'title': 'Python程式設計備課',
'description': '撰寫 API DEMO',
'done': False

},
{
'id': 1,
'title': 'Pytest',
'description': '增加程式單元測試',
'done': False
Expand All @@ -101,40 +102,39 @@ def get_tasks():

@app.route('/tasks/<int:task_id>', methods=['GET'])
def get_task(task_id):
task = [ task for task in tasks if task['id'] == task_id]
if len(task) == 0:
abort(404)
return jsonify({'task': task[0]})
for task in tasks:
if task['id'] == task_id:
return jsonify({'task': task})
abort(404)

@app.route('/tasks', methods=['POST'])
def add_task():
# 取得使用者傳送的待辦事項
task = request.json
task = request.json or {}
next_id = tasks[-1]['id'] + 1 if tasks else 0
task['id'] = next_id
tasks.append(task)
return jsonify({'tasks':tasks}), 201
return jsonify({'tasks': tasks}), 201

@app.route('/tasks/<int:task_id>', methods=['PUT'])
def update_task(task_id):
# 取得使用者傳送的更新資料
task = request.json

# 檢查待辦事項是否存在
if task_id < 0 or task_id >= len(tasks):
return jsonify({'message': 'task not found'}), 404
new_task = request.json or {}

# 更新待辦事項
tasks[task_id] = task
return jsonify({'message': f'task_id: {task_id} updated'}), 200
for i, t in enumerate(tasks):
if t['id'] == task_id:
new_task['id'] = task_id
tasks[i] = new_task
return jsonify({'message': f'task_id: {task_id} updated'}), 200
return jsonify({'message': 'task not found'}), 404

@app.route('/tasks/<int:task_id>', methods=['DELETE'])
def delete_task(task_id):
# 檢查待辦事項是否存在
if task_id < 0 or task_id >= len(tasks):
return jsonify({'message': 'task not found'}), 404

# 刪除待辦事項
tasks.pop(task_id)
return jsonify({'message': 'task deleted'}), 200
for i, t in enumerate(tasks):
if t['id'] == task_id:
tasks.pop(i)
return jsonify({'message': 'task deleted'}), 200
return jsonify({'message': 'task not found'}), 404


#################################################
Expand Down
Loading