dawarich/app/services/visits/find_in_time.rb
Evgenii Burmakin ce8a7cd4ef
Implement some performance improvements and caching for various featu… (#2133)
* Implement some performance improvements and caching for various features.

* Fix failing tests

* Implement routes behaviour in map v2 to match map v1

* Fix route highlighting

* Add fallbacks when retrieving full route features to handle cases where source data access methods vary.

* Fix some e2e tests
2026-01-07 19:48:14 +01:00

31 lines
670 B
Ruby

# frozen_string_literal: true
module Visits
class FindInTime
def initialize(user, params)
@user = user
@start_at = parse_time(params[:start_at])
@end_at = parse_time(params[:end_at])
end
def call
Visit
.includes(:place, :area)
.where(user:)
.where('started_at >= ? AND ended_at <= ?', start_at, end_at)
.order(started_at: :desc)
end
private
attr_reader :user, :start_at, :end_at
def parse_time(time_string)
parsed_time = Time.zone.parse(time_string)
raise ArgumentError, "Invalid time format: #{time_string}" if parsed_time.nil?
parsed_time
end
end
end