Coverage for app/controllers/world_controller.py: 75%

72 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-06-02 23:27 +0000

1from fastapi import APIRouter, Depends 

2from sqlalchemy.orm import Session 

3from typing import Any 

4from pydantic import BaseModel, EmailStr 

5from app.services.create_world import create_world 

6from app.services.change_world_name import change_world_name 

7from app.services.change_world_description import change_world_description 

8from app.services.search_world_id import search_world_id 

9from app.services.delete_world import delete_world 

10from app.services.update_world_settings import change_settings 

11from app.services.create_world_time import create_world_time 

12from app.services.change_world_time import change_world_time 

13from app.services.delete_world_time import delete_world_time 

14from app.db.supabaseDB import get_db 

15from app.core.security import get_current_user_id 

16 

17world_controller = APIRouter() 

18 

19class new_world(BaseModel): 

20 name: str 

21 description: str 

22 

23class world_search_id(BaseModel): 

24 world_id: int 

25 

26class new_input(BaseModel): 

27 id: int 

28 input: str 

29 

30class settings(BaseModel): 

31 allow_public_visibility: bool 

32 join_method: str 

33 max_campaigns: int 

34 allow_dm_invites: bool 

35 enable_fog_of_war: bool 

36 inter_party_visibility: bool 

37 spectator_map_visibility: bool 

38 show_party_position_globally: bool 

39 

40class new_world_settings(BaseModel): 

41 settings_id: int 

42 settings: settings 

43 

44# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 

45# Create world 

46 

47@world_controller.post("/create_world") 

48def new_world( 

49 request: new_world, 

50 user_id: str = Depends(get_current_user_id), 

51 db: Session = Depends(get_db) 

52): 

53 data = create_world(request.name, request.description, user_id, db) 

54 return data 

55 

56@world_controller.get("/get_world") 

57def get_world_by_id( 

58 request: world_search_id, 

59 db: Session = Depends(get_db) 

60): 

61 found_world = search_world_id(request.world_id, db) 

62 return found_world 

63 

64@world_controller.post("/update_world_name") 

65def update_world_name( 

66 request: new_input, 

67 user_id: str = Depends(get_current_user_id), 

68 db: Session = Depends(get_db) 

69): 

70 world = change_world_name(request.id, request.input, user_id, db) 

71 return world 

72 

73@world_controller.post("/update_world_description") 

74def update_world_name( 

75 request: new_input, 

76 db: Session = Depends(get_db) 

77): 

78 world = change_world_description(request.id, request.input, db) 

79 return world 

80 

81@world_controller.delete("/delete_world") 

82def remove_world( 

83 request: world_search_id, 

84 db: Session = Depends(get_db) 

85): 

86 deleted = delete_world(request.world_id, db) 

87 return deleted 

88 

89# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 

90# World Settings 

91 

92@world_controller.post("/update_world_settings") 

93def update_world_settings( 

94 request: new_world_settings, 

95 db: Session = Depends(get_db) 

96): 

97 data = change_settings(request.settings_id, request.settings, db) 

98 return data 

99 

100# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 

101# World Time 

102 

103@world_controller.post("/create_world_time") 

104def new_world_time( 

105 request: world_search_id, 

106 db: Session = Depends(get_db) 

107): 

108 world_time = create_world_time(request.world_id, db) 

109 return world_time 

110 

111@world_controller.post("/update_world_time") 

112def update_world_time( 

113 request: new_input, 

114 db: Session = Depends(get_db) 

115): 

116 world_time = change_world_time(request.id, request.input, db) 

117 return world_time 

118 

119@world_controller.delete("/delete_world_time") 

120def remove_world_time( 

121 request: world_search_id, 

122 db: Session = Depends(get_db) 

123): 

124 deleted = delete_world_time(request.world_id, db) 

125 return deleted