aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/validation_report.rb
blob: 6c98776cd83893330bb19026298492e4ada5248a (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
class ValidationReport
  extend ActiveModel::Naming
  include ActiveModel::Model
  
  attr_reader :datas
  
  def initialize( response )
    @datas = response[:action_report]
  end

  def zip_file
    datas.zip_file
  end

  def error_files
    datas.files.select{ |file| file[:status] == "ERROR"}
  end

  def ignored_files
    datas.files.select{ |file| file[:status] == "IGNORED"}
  end

  def ok_files
    datas.files.select{ |file| file[:status] == "OK"}
  end
  
  def files
    datas.files
  end

  def line_items
    [].tap do |line_items|
      datas.lines.each do |line|
        line_items << LineItem.new(line)
      end
    end
  end

  def lines
    datas.stats.line_count if datas.stats.line_count?
  end
  
  def routes
    datas.stats.route_count if datas.stats.route_count?
  end
  
  def connection_links
    datas.stats.connection_link_count if datas.stats.connection_link_count?
  end
  
  def time_tables
    datas.stats.time_table_count if datas.stats.time_table_count?
  end
  
  def stop_areas
    datas.stats.stop_area_count if datas.stats.stop_area_count?
  end
  
  def access_points
    datas.stats.access_point_count if datas.stats.access_point_count?
  end
  
  def vehicle_journeys
    datas.stats.vehicle_journey_count if datas.stats.vehicle_journey_count?
  end
  
  def journey_patterns
    datas.stats.journey_pattern_count if datas.stats.journey_pattern_count?
  end
  
  class LineItem
    attr_reader :name, :status, :stats
    
    def initialize( options = Hashie::Mash.new )
      @name = options.name if options.name?
      @status = options.status if options.status?
      @stats = options.stats if options.stats?
    end
    
    def routes
      stats.route_count
    end

    def connection_links
      stats.connection_link_count
    end

    def time_tables
      stats.time_table_count
    end

    def stop_areas
      stats.stop_area_count
    end

    def access_points
      stats.access_point_count
    end
    
    def vehicle_journeys
      stats.vehicle_journey_count
    end

    def journey_patterns
      stats.journey_pattern_count
    end

  end
  
end