]> git.openstreetmap.org Git - rails.git/blob - app/jobs/trace_importer_job.rb
Merge pull request #5932 from tomhughes/frozen-strings
[rails.git] / app / jobs / trace_importer_job.rb
1 # frozen_string_literal: true
2
3 class TraceImporterJob < ApplicationJob
4   queue_as :traces
5
6   def perform(trace)
7     gpx = trace.import
8
9     if gpx.actual_points.positive?
10       UserMailer.gpx_success(trace, gpx.actual_points).deliver
11     else
12       UserMailer.gpx_failure(trace, "0 points parsed ok. Do they all have lat,lng,alt,timestamp?").deliver
13       trace.destroy
14     end
15   rescue XML::Error => e
16     logger.info e.to_s
17     UserMailer.gpx_failure(trace, e).deliver
18     trace.destroy
19   rescue StandardError => e
20     logger.info e.to_s
21     e.backtrace.each { |l| logger.info l }
22     UserMailer.gpx_failure(trace, "#{e}\n#{e.backtrace.join("\n")}").deliver
23     trace.destroy
24   end
25 end