Coverage for app/services/update_world_settings.py: 17%

21 statements  

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

1from app.db.models import World, WorldSettings 

2from app.core.exceptions import WorldNotFoundError, DatabaseSaveError 

3from app.db.models import WorldSettings 

4 

5def change_settings(settings_id:int, changed_settings, db): 

6 try: 

7 settings = db.query(WorldSettings).where(WorldSettings.id == settings_id).first() 

8 

9 if not settings: 

10 raise WorldNotFoundError("World Settings not found") 

11 

12 settings.allow_public_visibility = changed_settings.allow_public_visibility 

13 settings.join_method = changed_settings.join_method 

14 settings.max_campaigns = changed_settings.max_campaigns 

15 settings.allow_dm_invites = changed_settings.allow_dm_invites 

16 settings.enable_fog_of_war = changed_settings.enable_fog_of_war 

17 settings.inter_party_visibility = changed_settings.inter_party_visibility 

18 settings.spectator_map_visibility = changed_settings.spectator_map_visibility 

19 settings.show_party_position_globally = changed_settings.show_party_position_globally 

20 

21 db.commit() 

22 db.refresh(settings) 

23 

24 return settings 

25 

26 except Exception as e: 

27 raise DatabaseSaveError(str(e)) 

28 

29