aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXinhui2017-02-07 16:34:11 +0100
committerXinhui2017-02-07 16:34:25 +0100
commit9424c83cec849002647cf7cd33809bc393cc2828 (patch)
tree6e17937d4312e7a7227f75259e1eb83a7cfbc9c0
parentd6263e5d304c19db9b0e491e3c338848276b2ebc (diff)
downloadchouette-core-9424c83cec849002647cf7cd33809bc393cc2828.tar.bz2
Vehicle journeys #index format json
-rw-r--r--app/controllers/vehicle_journeys_controller.rb2
-rw-r--r--app/views/vehicle_journeys/index.rabl3
-rw-r--r--app/views/vehicle_journeys/show.rabl39
3 files changed, 43 insertions, 1 deletions
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index 3ae278ec1..45cb25344 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -1,6 +1,6 @@
class VehicleJourneysController < ChouetteController
defaults :resource_class => Chouette::VehicleJourney
-
+ respond_to :json, :only => :index
respond_to :js, :only => [:select_journey_pattern, :edit, :new, :index]
belongs_to :referential do
diff --git a/app/views/vehicle_journeys/index.rabl b/app/views/vehicle_journeys/index.rabl
new file mode 100644
index 000000000..eb042f7a9
--- /dev/null
+++ b/app/views/vehicle_journeys/index.rabl
@@ -0,0 +1,3 @@
+collection @vehicle_journeys
+
+extends "vehicle_journeys/show"
diff --git a/app/views/vehicle_journeys/show.rabl b/app/views/vehicle_journeys/show.rabl
new file mode 100644
index 000000000..09375f5d5
--- /dev/null
+++ b/app/views/vehicle_journeys/show.rabl
@@ -0,0 +1,39 @@
+object @vehicle_journey
+
+[ :objectid, :published_journey_name, :journey_pattern_id].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
+
+child(:time_tables) do |time_tables|
+ node do |tt|
+ [:objectid, :start_date, :end_date].map do |att|
+ node(att) { tt.send(att) }
+ end
+ node :calendar do |tt|
+ {
+ id: tt.calendar.id,
+ name: tt.calendar.name,
+ date_ranges: tt.calendar.date_ranges,
+ dates: tt.calendar.dates,
+ shared: tt.calendar.shared
+ }
+ end
+ end
+end
+
+child :footnotes do |footnotes|
+ node do |footnote|
+ node(:id) { footnote.id }
+ end
+end
+
+child :vehicle_journey_at_stops do |vehicle_stops|
+ node do |vehicle_stop|
+ node(:stop_area_object_id) { vehicle_stop.stop_point.stop_area.objectid }
+ [ :connecting_service_id, :arrival_time, :departure_time, :boarding_alighting_possibility].each do |attr|
+ node( attr) do
+ vehicle_stop.send(attr)
+ end unless vehicle_stop.send(attr).nil?
+ end
+ end
+end