Files
aitsc/src/flask_prompt_master/routes/favorites.py
2025-08-29 00:34:40 +08:00

99 lines
3.3 KiB
Python

# -*- coding: utf-8 -*-
from flask import Blueprint, request, jsonify, render_template
from src.flask_prompt_master.services.favorite_service import FavoriteService
favorites_bp = Blueprint('favorites', __name__)
@favorites_bp.route('/favorites', methods=['GET'])
def favorites_page():
"""收藏页面"""
return render_template('favorites.html')
@favorites_bp.route('/api/favorites', methods=['GET'])
def get_favorites():
"""获取收藏列表"""
page = request.args.get('page', 1, type=int)
per_page = request.args.get('per_page', 10, type=int)
search = request.args.get('search', '')
category = request.args.get('category', 'all')
result = FavoriteService.get_favorites(
request, page, per_page, search, category
)
return jsonify(result)
@favorites_bp.route('/api/favorites', methods=['POST'])
def add_favorite():
"""添加收藏"""
data = request.get_json()
template_id = data.get('template_id')
original_text = data.get('original_text')
generated_prompt = data.get('generated_prompt')
system_prompt = data.get('system_prompt')
category = data.get('category')
industry = data.get('industry')
profession = data.get('profession')
tags = data.get('tags')
notes = data.get('notes')
if not original_text or not generated_prompt:
return jsonify({'success': False, 'message': '缺少必要参数'})
result = FavoriteService.add_favorite(
request, template_id, original_text, generated_prompt,
system_prompt, category, industry, profession, tags, notes
)
return jsonify(result)
@favorites_bp.route('/api/favorites/<int:favorite_id>', methods=['GET'])
def get_favorite_detail(favorite_id):
"""获取收藏详情"""
result = FavoriteService.get_favorite_by_id(request, favorite_id)
return jsonify(result)
@favorites_bp.route('/api/favorites/<int:favorite_id>', methods=['PUT'])
def update_favorite(favorite_id):
"""更新收藏"""
data = request.get_json()
notes = data.get('notes')
tags = data.get('tags')
result = FavoriteService.update_favorite(request, favorite_id, notes, tags)
return jsonify(result)
@favorites_bp.route('/api/favorites/<int:favorite_id>', methods=['DELETE'])
def delete_favorite(favorite_id):
"""删除收藏"""
result = FavoriteService.delete_favorite(request, favorite_id)
return jsonify(result)
@favorites_bp.route('/api/favorites/stats', methods=['GET'])
def get_favorite_stats():
"""获取收藏统计信息"""
result = FavoriteService.get_favorite_stats(request)
return jsonify(result)
@favorites_bp.route('/api/favorites/quick-add', methods=['POST'])
def quick_add_favorite():
"""快速添加收藏(从生成页面调用)"""
data = request.get_json()
template_id = data.get('template_id')
original_text = data.get('original_text')
generated_prompt = data.get('generated_prompt')
system_prompt = data.get('system_prompt')
category = data.get('category')
if not original_text or not generated_prompt:
return jsonify({'success': False, 'message': '缺少必要参数'})
result = FavoriteService.add_favorite(
request, template_id, original_text, generated_prompt,
system_prompt, category
)
return jsonify(result)