node-511
Version:
Lightweight node.js wrapper for the 511.org real time driving times and transit departure APIs
40 lines (29 loc) • 1.17 kB
text/coffeescript
AbstractService = require './AbstractService'
class GetRoutesForAgency extends AbstractService
invoke: (parameters = {}, callback = () ->) =>
if !parameters.agencyName
return callback new Error "Call to service #{ @constructor.name } must include parameter agencyName"
super parameters, callback
_parse: (obj) ->
for _A in obj?.RTT?.AgencyList?[0]?.Agency ? []
if (_A?['$']?.Name)
name =_A?['$']?.Name
agency =
HasDirection: 'True' == _A?['$']?.HasDirection
Mode: _A?['$']?.Mode ? null
routes = {}
for _R in (_A?.RouteList?[0]?.Route ? [])
if (_R?['$']?.Name)
routes[_R['$'].Name] =
Code: _R?['$']?.Code ? null
routeDirections = []
for _RD in (_R?.RouteDirectionList?[0]?.RouteDirection ? [])
if (_RD['$']?.Name)
routeDirections.push
Name: _RD['$'].Name
Code: _RD?['$']?.Code ? null
if routeDirections.length > 0
routes[_R['$'].Name].RouteDirections = routeDirections
agency.Routes = routes
agency
module.exports = GetRoutesForAgency