from flask import request, jsonify from utils.database import get_db from utils.helpers import error_response from utils.auth import admin_required def register_carousel_routes(app): @app.route('/api/carousels', methods=['GET']) def get_carousels(): conn = get_db() cursor = conn.cursor() cursor.execute('SELECT * FROM carousels ORDER BY sort_order ASC') rows = cursor.fetchall() conn.close() items = [dict(row) for row in rows] return jsonify(items) @app.route('/api/carousels', methods=['POST']) @admin_required def create_carousel(): data = request.json if not data.get('image_url'): return error_response('图片地址不能为空') conn = get_db() cursor = conn.cursor() cursor.execute(''' INSERT INTO carousels (page_type, image_url, link_url, sort_order) VALUES (?, ?, ?, ?) ''', ( data.get('page_type', 'task_list'), data.get('image_url'), data.get('link_url', ''), data.get('sort_order', 0) )) carousel_id = cursor.lastrowid conn.commit() conn.close() return jsonify({'id': carousel_id, 'success': True}) @app.route('/api/carousels/', methods=['PUT']) @admin_required def update_carousel(carousel_id): data = request.json if not data.get('image_url'): return error_response('图片地址不能为空') conn = get_db() cursor = conn.cursor() cursor.execute(''' UPDATE carousels SET page_type = ?, image_url = ?, link_url = ?, sort_order = ? WHERE id = ? ''', ( data.get('page_type', 'task_list'), data.get('image_url'), data.get('link_url', ''), data.get('sort_order', 0), carousel_id )) conn.commit() conn.close() return jsonify({'success': True}) @app.route('/api/carousels/', methods=['DELETE']) @admin_required def delete_carousel(carousel_id): conn = get_db() cursor = conn.cursor() cursor.execute('DELETE FROM carousels WHERE id = ?', (carousel_id,)) conn.commit() conn.close() return jsonify({'success': True, 'message': '删除成功'})