dawarich/app/jobs/trips/calculate_distance_job.rb

26 lines
531 B
Ruby
Raw Normal View History

2025-05-15 15:33:01 -04:00
# frozen_string_literal: true
class Trips::CalculateDistanceJob < ApplicationJob
queue_as :default
2025-05-19 13:00:34 -04:00
def perform(trip_id, distance_unit)
2025-05-15 15:33:01 -04:00
trip = Trip.find(trip_id)
trip.calculate_distance
trip.save!
2025-05-19 13:00:34 -04:00
broadcast_update(trip, distance_unit)
2025-05-15 15:33:01 -04:00
end
private
2025-05-19 13:00:34 -04:00
def broadcast_update(trip, distance_unit)
2025-05-15 15:33:01 -04:00
Turbo::StreamsChannel.broadcast_update_to(
"trip_#{trip.id}",
target: "trip_distance",
partial: "trips/distance",
2025-05-19 13:00:34 -04:00
locals: { trip: trip, distance_unit: distance_unit }
2025-05-15 15:33:01 -04:00
)
end
end