dawarich/app/serializers/location_search_result_serializer.rb
2025-09-02 21:21:22 +02:00

47 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class LocationSearchResultSerializer
def initialize(search_result)
@search_result = search_result
end
def call
{
query: @search_result[:query],
locations: serialize_locations(@search_result[:locations]),
total_locations: @search_result[:total_locations],
search_metadata: @search_result[:search_metadata]
}
end
private
def serialize_locations(locations)
locations.map do |location|
{
place_name: location[:place_name],
coordinates: location[:coordinates],
address: location[:address],
total_visits: location[:total_visits],
first_visit: location[:first_visit],
last_visit: location[:last_visit],
visits: serialize_visits(location[:visits])
}
end
end
def serialize_visits(visits)
visits.map do |visit|
{
timestamp: visit[:timestamp],
date: visit[:date],
coordinates: visit[:coordinates],
distance_meters: visit[:distance_meters],
duration_estimate: visit[:duration_estimate],
points_count: visit[:points_count],
accuracy_meters: visit[:accuracy_meters],
visit_details: visit[:visit_details]
}
end
end
end