first commit

This commit is contained in:
2026-04-07 16:05:05 +08:00
commit 9d9bdbb1ce
136 changed files with 5103 additions and 0 deletions
+81
View File
@@ -0,0 +1,81 @@
from flask import jsonify, request
from flask_jwt_extended import jwt_required, get_jwt_identity
from . import api_bp
from ..models import Memory, Workspace
from ..schemas import MemorySchema, MemoryCreateSchema, MemoryUpdateSchema
from ..services import MemoryService
memory_schema = MemorySchema()
memory_create_schema = MemoryCreateSchema()
memory_update_schema = MemoryUpdateSchema()
@api_bp.route("/workspaces/<int:workspace_id>/memories", methods=["GET"])
@jwt_required()
def get_memories(workspace_id):
user_id = get_jwt_identity()
workspace = Workspace.query.filter_by(id=workspace_id, user_id=user_id).first()
if not workspace:
return jsonify({"error": "工作空间不存在"}), 404
memories = Memory.query.filter_by(workspace_id=workspace_id).all()
return jsonify(memory_schema.dump(memories, many=True))
@api_bp.route("/workspaces/<int:workspace_id>/memories", methods=["POST"])
@jwt_required()
def create_memory(workspace_id):
user_id = get_jwt_identity()
workspace = Workspace.query.filter_by(id=workspace_id, user_id=user_id).first()
if not workspace:
return jsonify({"error": "工作空间不存在"}), 404
data = request.get_json()
errors = memory_create_schema.validate(data)
if errors:
return jsonify({"error": errors}), 400
try:
memory = MemoryService.create_memory(workspace_id, data)
return jsonify(memory_schema.dump(memory)), 201
except ValueError as e:
return jsonify({"error": str(e)}), 400
@api_bp.route("/memories/<int:memory_id>", methods=["GET"])
@jwt_required()
def get_memory(memory_id):
memory = Memory.query.get(memory_id)
if not memory:
return jsonify({"error": "记忆不存在"}), 404
return jsonify(memory_schema.dump(memory))
@api_bp.route("/memories/<int:memory_id>", methods=["PUT"])
@jwt_required()
def update_memory(memory_id):
memory = Memory.query.get(memory_id)
if not memory:
return jsonify({"error": "记忆不存在"}), 404
data = request.get_json()
errors = memory_update_schema.validate(data)
if errors:
return jsonify({"error": errors}), 400
try:
updated_memory = MemoryService.update_memory(memory, data)
return jsonify(memory_schema.dump(updated_memory))
except ValueError as e:
return jsonify({"error": str(e)}), 400
@api_bp.route("/memories/<int:memory_id>", methods=["DELETE"])
@jwt_required()
def delete_memory(memory_id):
try:
MemoryService.delete_memory(memory_id)
return jsonify({"message": "记忆已删除"})
except ValueError as e:
return jsonify({"error": str(e)}), 400