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
« 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
17world_controller = APIRouter()
19class new_world(BaseModel):
20 name: str
21 description: str
23class world_search_id(BaseModel):
24 world_id: int
26class new_input(BaseModel):
27 id: int
28 input: str
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
40class new_world_settings(BaseModel):
41 settings_id: int
42 settings: settings
44# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
45# Create world
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
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
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
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
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
89# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
90# World Settings
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
100# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
101# World Time
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
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
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