Coverage for api/views.py: 97%
30 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-05 02:45 +0800
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-05 02:45 +0800
1from django.http import JsonResponse
2from django.views.decorators.csrf import csrf_exempt
3from django.views.decorators.http import require_http_methods
4from .decorators import api_login_required
5import json
8def health_check(request):
9 """健康检查端点"""
10 return JsonResponse({
11 'status': 'ok',
12 'message': 'API运行正常'
13 })
16@api_login_required
17@csrf_exempt
18@require_http_methods(["GET", "POST"])
19def family_overview(request):
20 """家庭概览API"""
21 if request.method == 'GET':
22 # 返回家庭概览数据
23 return JsonResponse({
24 'family_members': [
25 {'id': 1, 'name': '测试用户', 'relationship': '自己'},
26 ],
27 'recent_stories': [
28 {'id': 1, 'title': '欢迎使用家庭知识管理系统', 'date': '2024-12-28'},
29 ],
30 'stats': {
31 'total_members': 1,
32 'total_stories': 1,
33 'total_photos': 0
34 }
35 })
37 elif request.method == 'POST': 37 ↛ exitline 37 didn't return from function 'family_overview' because the condition on line 37 was always true
38 # 处理新增数据
39 try:
40 data = json.loads(request.body)
41 # 这里后续会集成实际的数据模型
42 return JsonResponse({
43 'status': 'success',
44 'message': 'Data received',
45 'data': data
46 })
47 except json.JSONDecodeError:
48 return JsonResponse({
49 'status': 'error',
50 'message': 'Invalid JSON'
51 }, status=400)
54@api_login_required
55@csrf_exempt
56@require_http_methods(["POST"])
57def ai_chat(request):
58 """AI助手对话API"""
59 try:
60 data = json.loads(request.body)
61 message = data.get('message', '')
63 # 简单的AI响应模拟
64 response = f"收到您的消息:{message}。这是一个演示响应,后续会集成真正的AI功能。"
66 return JsonResponse({
67 'response': response,
68 'timestamp': '2024-12-28T12:00:00Z'
69 })
70 except json.JSONDecodeError:
71 return JsonResponse({
72 'status': 'error',
73 'message': 'Invalid JSON'
74 }, status=400)