Files
ewoooc/routes/category_routes.py
OoO 8fce73bd4b
All checks were successful
CD Pipeline / deploy (push) Successful in 1m9s
refactor(app.py): 抽出 /api/categories CRUD 至 category_routes Blueprint
- 新增 routes/category_routes.py(46 行,3 routes:POST/PUT/DELETE)
- app.py 7053 → 7012(-41 行)
- 沿用 services.json_storage.load_categories/save_categories
- 註冊位置貼齊 system_bp 後方

Phase 3e route handlers Blueprint 化首棒,邊界最小、無共用狀態
2026-04-28 21:04:40 +08:00

48 lines
1.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""分類 CRUD Blueprint。從 app.py 抽離Phase 3e"""
import time
from flask import Blueprint, jsonify, request
from services.json_storage import load_categories, save_categories
category_bp = Blueprint('category', __name__, url_prefix='/api/categories')
@category_bp.route('', methods=['POST'])
def add_category():
name = request.form.get('name')
url = request.form.get('url')
if not name or not url:
return jsonify({"status": "error", "message": "名稱和 URL 皆不可為空"}), 400
categories = load_categories()
new_id = int(time.time() * 1000)
categories.append({'id': new_id, 'name': name, 'url': url})
save_categories(categories)
return jsonify({"status": "success", "message": "分類新增成功"})
@category_bp.route('/<int:category_id>', methods=['PUT'])
def update_category(category_id):
name = request.form.get('name')
url = request.form.get('url')
if not name or not url:
return jsonify({"status": "error", "message": "名稱和 URL 皆不可為空"}), 400
categories = load_categories()
for cat in categories:
if cat.get('id') == category_id:
cat['name'] = name
cat['url'] = url
save_categories(categories)
return jsonify({"status": "success", "message": "分類更新成功"})
return jsonify({"status": "error", "message": "找不到指定的分類 ID"}), 404
@category_bp.route('/<int:category_id>', methods=['DELETE'])
def delete_category(category_id):
categories = [cat for cat in load_categories() if cat.get('id') != category_id]
save_categories(categories)
return jsonify({"status": "success", "message": "分類刪除成功"})