aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/gtfs_export.rb
blob: d0b9fc4f9d032903c59771b5d5cca36c8d970b36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class GtfsExport < ExportTask

  validates_presence_of :time_zone, unless: Proc.new { |e| e.optional_attribute? :time_zone }
  attr_accessor :object_id_prefix, :time_zone

  enumerize :references_type, in: %w( network line company group_of_line stop_area )

  after_initialize :init_params

  def init_params
    if time_zone.nil?
      self.time_zone = "Paris"
    end
  end

  def real_time_zone
    ActiveSupport::TimeZone.find_tzinfo(time_zone).name
  end

  def action_params
    {
      "gtfs-export" => {
        "name" => name,
        "references_type" => references_type,
        "reference_ids" => reference_ids,
        "user_name" => user_name,
        "organisation_name" => organisation.name,
        "referential_name" => referential.name,
        "time_zone" => real_time_zone,
        "object_id_prefix" => object_id_prefix,
        "start_date" => start_date,
        "end_date" => end_date
      }
    }
  end

  def self.optional_attributes(references_type)
    super.tap do |optional_attributes|
      optional_attributes.push :time_zone, :start_date, :end_date if references_type == "stop_area"
    end
  end

  def data_format
    "gtfs"
  end

end