Results 25 issues of Ian Rees

Will require some changes to service on date queries. See: https://github.com/transitland/transitland-datastore/issues/1241

This will fail when generating `import_status` for the serializer: ``` Started GET "/api/v1/feeds.geojson?onestop_id=f-srb-tperspa" for 127.0.0.1 at 2017-12-04 02:15:58 +0000 Processing by Api::V1::FeedsController#index as GEOJSON Parameters: {"onestop_id"=>"f-srb-tperspa"} Rendered ActiveModel::Serializer::CollectionSerializer with GeoJSONAdapter...

When merging entities, update all associations to reference the target entity. ## Merge Stops ### Join tables: EIFFs OIFs EWIs? OperatorServingStop RouteServingStop ### Update other entities: ScheduleStopPair RouteStopPattern StopPlatform StopEgress...

ready

When a trip contains bad schedule data, e.g. goes backwards in time, skip the trip entirely & log error. Continue on to other trips. See: http://transit.land/dispatcher/feeds/f-udt-Петербургский~метрополитен

ready
FeedEater/GtfsGraph

See: https://github.com/transitland/transitland/issues/285#issuecomment-330927155 Example Payload: ``` {"action":"createUpdate","route":{"onestopId":"r--321","name":"321","tags":{"route_long_name":"321","route_desc":null,"route_url":null,"route_color":"000000","route_text_color":"FFFFFF"},"geometry":{"type":"MultiLineString","coordinates":[[[2.29399,48.52433],[2.28278,48.51827],[2.27232,48.52006],[2.26743,48.52135],[115.44042,-22.79044],[2.25627,48.52068],[2.25196,48.51902],[2.24423,48.5165],[2.24156,48.51585]],[[2.24162,48.51589],[2.24446,48.5166],[2.2524,48.51926],[2.25627,48.52068],[2.26319,48.52167],[2.26628,48.52214],[2.27228,48.52007],[2.28291,48.5184],[2.29404,48.51862],[2.29428,48.51602],[2.29399,48.52433]]]},"vehicleType":"bus","color":"000000","wheelchairAccessible":"unknown","bikesAllowed":"unknown","serves":["s-u09sh1w6tz-collègegtillon\u003cstoppoint~49~58430","s-u09s5bqrf0-petitmesnil\u003cstoppoint~49~53210","s-u09s58y9u7-rondpoint\u003cstoppoint~49~53720","s-u09s594ets-eglise\u003cstoppoint~49~51270","s-qefn6gjhhc-stexupéry\u003cstoppoint~49~53971","s-u09s52fmee-garedelardy\u003cstoppoint~49~51611","s-u09s50xurx-gendarmerie\u003cstoppoint~49~51710","s-u09s504m2u-46ruepanserot\u003cstoppoint~49~50040","s-u09s50032v-20ruepanserot\u003cstoppoint~49~50020","s-u09s50032v-20ruepanserot\u003cstoppoint~49~50021","s-u09s504m2u-46ruepanserot\u003cstoppoint~49~50041","s-u09s50xurx-gendarmerie\u003cstoppoint~49~51711","s-u09s59050n-hôteldeville\u003cstoppoint~49~54680","s-u09s594ets-eglise\u003cstoppoint~49~51271","s-u09s58y9u7-rondpoint\u003cstoppoint~49~53721","s-u09s5bqrf0-petitmesnil\u003cstoppoint~49~53211","s-u09sh0d8f0-croixdefer\u003cstoppoint~49~51101","s-u09sh0w93p-tilleuls\u003cstoppoint~49~54131","s-u09sh0neqp-grandesroches\u003cstoppoint~49~51771"],"operatedBy":"o-u09-ceat","addImportedFromFeeds":[{"feedVersion":"aef1c51ee9ddaef6a64f959f9818675d5d50fb5c","gtfsId":"010010001:321"}]}} ```

https://sentry.io/mapzen/datastore-prod/issues/195808529/ ``` TypeError: no implicit conversion of nil into String app/services/feed_fetcher_service.rb:151:in `read_gtfs_info' start_date, end_date = gtfs.service_period_range app/services/feed_fetcher_service.rb:144:in `fetch_and_normalize_feed_version' data = data.merge!(read_gtfs_info(gtfs)) app/services/feed_fetcher_service.rb:54:in `fetch_and_return_feed_version' feed_version = fetch_and_normalize_feed_version(feed) app/workers/feed_fetcher_worker.rb:11:in `perform' feed_version =...

bug