Coverage for api/views.py: 97%

30 statements  

« 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 

6 

7 

8def health_check(request): 

9 """健康检查端点""" 

10 return JsonResponse({ 

11 'status': 'ok', 

12 'message': 'API运行正常' 

13 }) 

14 

15 

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 }) 

36 

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) 

52 

53 

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', '') 

62 

63 # 简单的AI响应模拟 

64 response = f"收到您的消息:{message}。这是一个演示响应,后续会集成真正的AI功能。" 

65 

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)