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
« 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
5def change_settings(settings_id:int, changed_settings, db):
6 try:
7 settings = db.query(WorldSettings).where(WorldSettings.id == settings_id).first()
9 if not settings:
10 raise WorldNotFoundError("World Settings not found")
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
21 db.commit()
22 db.refresh(settings)
24 return settings
26 except Exception as e:
27 raise DatabaseSaveError(str(e))