dawarich/app/services/own_tracks/params.rb

73 lines
1.7 KiB
Ruby
Raw Normal View History

2024-03-15 18:27:31 -04:00
# frozen_string_literal: true
class OwnTracks::Params
attr_reader :params
def initialize(params)
2024-03-23 08:36:09 -04:00
@params = params.to_h.deep_symbolize_keys
2024-03-15 18:27:31 -04:00
end
def call
{
latitude: params[:lat],
longitude: params[:lon],
battery: params[:batt],
ping: params[:p],
altitude: params[:alt],
accuracy: params[:acc],
vertical_accuracy: params[:vac],
velocity: params[:vel],
ssid: params[:SSID],
bssid: params[:BSSID],
tracker_id: params[:tid],
timestamp: params[:tst].to_i,
inrids: params[:inrids],
in_regions: params[:inregions],
topic: params[:topic],
battery_status:,
connection:,
trigger:,
raw_data: params.deep_stringify_keys
2024-03-15 18:27:31 -04:00
}
end
private
def battery_status
return 'unknown' if params[:bs].nil?
2024-08-15 13:47:59 -04:00
case params[:bs].to_i
when 1 then 'unplugged'
when 2 then 'charging'
when 3 then 'full'
2024-03-15 18:27:31 -04:00
else 'unknown'
end
end
def trigger
2024-08-15 13:47:59 -04:00
return 'unknown' if params[:t].nil?
2024-03-15 18:27:31 -04:00
2024-08-15 13:47:59 -04:00
case params[:t]
2024-03-15 18:27:31 -04:00
when 'p' then 'background_event'
when 'c' then 'circular_region_event'
when 'b' then 'beacon_event'
when 'r' then 'report_location_message_event'
when 'u' then 'manual_event'
when 't' then 'timer_based_event'
when 'v' then 'settings_monitoring_event'
else 'unknown'
end
end
def connection
return 'mobile' if params[:conn].nil?
case params[:conn]
when 'm' then 'mobile'
when 'w' then 'wifi'
when 'o' then 'offline'
else 'unknown'
end
end
end