mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 17:21:38 -05:00
56 lines
1.7 KiB
Ruby
56 lines
1.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class Api::UserSerializer
|
|
def initialize(user)
|
|
@user = user
|
|
end
|
|
|
|
def call
|
|
data = {
|
|
user: {
|
|
email: user.email,
|
|
theme: user.theme,
|
|
created_at: user.created_at,
|
|
updated_at: user.updated_at,
|
|
settings: settings
|
|
}
|
|
}
|
|
|
|
data.merge!(subscription: subscription) unless DawarichSettings.self_hosted?
|
|
|
|
data
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :user
|
|
|
|
def settings
|
|
{
|
|
maps: user.safe_settings.maps,
|
|
fog_of_war_meters: user.safe_settings.fog_of_war_meters.to_i,
|
|
meters_between_routes: user.safe_settings.meters_between_routes.to_i,
|
|
preferred_map_layer: user.safe_settings.preferred_map_layer,
|
|
speed_colored_routes: user.safe_settings.speed_colored_routes,
|
|
points_rendering_mode: user.safe_settings.points_rendering_mode,
|
|
minutes_between_routes: user.safe_settings.minutes_between_routes.to_i,
|
|
time_threshold_minutes: user.safe_settings.time_threshold_minutes.to_i,
|
|
merge_threshold_minutes: user.safe_settings.merge_threshold_minutes.to_i,
|
|
live_map_enabled: user.safe_settings.live_map_enabled,
|
|
route_opacity: user.safe_settings.route_opacity.to_f,
|
|
immich_url: user.safe_settings.immich_url,
|
|
photoprism_url: user.safe_settings.photoprism_url,
|
|
visits_suggestions_enabled: user.safe_settings.visits_suggestions_enabled?,
|
|
speed_color_scale: user.safe_settings.speed_color_scale,
|
|
fog_of_war_threshold: user.safe_settings.fog_of_war_threshold,
|
|
globe_projection: user.safe_settings.globe_projection
|
|
}
|
|
end
|
|
|
|
def subscription
|
|
{
|
|
status: user.status,
|
|
active_until: user.active_until
|
|
}
|
|
end
|
|
end
|