dawarich/app/services/users/safe_settings.rb

99 lines
2.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
class Users::SafeSettings
attr_reader :settings
def initialize(settings)
@settings = settings
end
# rubocop:disable Metrics/MethodLength
def config
{
fog_of_war_meters: fog_of_war_meters,
meters_between_routes: meters_between_routes,
preferred_map_layer: preferred_map_layer,
speed_colored_routes: speed_colored_routes,
points_rendering_mode: points_rendering_mode,
minutes_between_routes: minutes_between_routes,
time_threshold_minutes: time_threshold_minutes,
merge_threshold_minutes: merge_threshold_minutes,
live_map_enabled: live_map_enabled,
route_opacity: route_opacity,
immich_url: immich_url,
immich_api_key: immich_api_key,
photoprism_url: photoprism_url,
photoprism_api_key: photoprism_api_key,
maps: maps,
distance_unit: distance_unit
}
end
# rubocop:enable Metrics/MethodLength
def fog_of_war_meters
settings['fog_of_war_meters'] || 50
end
def meters_between_routes
settings['meters_between_routes'] || 500
end
def preferred_map_layer
settings['preferred_map_layer'] || 'OpenStreetMap'
end
def speed_colored_routes
settings['speed_colored_routes'] || false
end
def points_rendering_mode
settings['points_rendering_mode'] || 'raw'
end
def minutes_between_routes
settings['minutes_between_routes'] || 30
end
def time_threshold_minutes
settings['time_threshold_minutes'] || 30
end
def merge_threshold_minutes
settings['merge_threshold_minutes'] || 15
end
def live_map_enabled
2025-02-11 15:12:35 -05:00
return settings['live_map_enabled'] if settings.key?('live_map_enabled')
true
end
def route_opacity
settings['route_opacity'] || 0.6
end
def immich_url
settings['immich_url']
end
def immich_api_key
settings['immich_api_key']
end
def photoprism_url
settings['photoprism_url']
end
def photoprism_api_key
settings['photoprism_api_key']
end
def maps
settings['maps'] || {}
end
def distance_unit
2025-05-17 15:53:50 -04:00
settings.dig('maps', 'distance_unit') || 'km'
end
end