node-511
Version:
Lightweight node.js wrapper for the 511.org real time driving times and transit departure APIs
79 lines (69 loc) • 3.92 kB
JavaScript
// Generated by CoffeeScript 1.7.1
(function() {
var AbstractService, GetRoutesForAgency,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
AbstractService = require('./AbstractService');
GetRoutesForAgency = (function(_super) {
__extends(GetRoutesForAgency, _super);
function GetRoutesForAgency() {
this.invoke = __bind(this.invoke, this);
return GetRoutesForAgency.__super__.constructor.apply(this, arguments);
}
GetRoutesForAgency.prototype.invoke = function(parameters, callback) {
if (parameters == null) {
parameters = {};
}
if (callback == null) {
callback = function() {};
}
if (!parameters.agencyName) {
return callback(new Error("Call to service " + this.constructor.name + " must include parameter agencyName"));
}
return GetRoutesForAgency.__super__.invoke.call(this, parameters, callback);
};
GetRoutesForAgency.prototype._parse = function(obj) {
var agency, name, routeDirections, routes, _A, _R, _RD, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref2, _ref20, _ref21, _ref22, _ref23, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
_ref4 = (_ref = obj != null ? (_ref1 = obj.RTT) != null ? (_ref2 = _ref1.AgencyList) != null ? (_ref3 = _ref2[0]) != null ? _ref3.Agency : void 0 : void 0 : void 0 : void 0) != null ? _ref : [];
for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
_A = _ref4[_i];
if ((_A != null ? (_ref5 = _A['$']) != null ? _ref5.Name : void 0 : void 0)) {
name = _A != null ? (_ref6 = _A['$']) != null ? _ref6.Name : void 0 : void 0;
agency = {
HasDirection: 'True' === (_A != null ? (_ref7 = _A['$']) != null ? _ref7.HasDirection : void 0 : void 0),
Mode: (_ref8 = _A != null ? (_ref9 = _A['$']) != null ? _ref9.Mode : void 0 : void 0) != null ? _ref8 : null
};
routes = {};
_ref13 = (_ref10 = _A != null ? (_ref11 = _A.RouteList) != null ? (_ref12 = _ref11[0]) != null ? _ref12.Route : void 0 : void 0 : void 0) != null ? _ref10 : [];
for (_j = 0, _len1 = _ref13.length; _j < _len1; _j++) {
_R = _ref13[_j];
if ((_R != null ? (_ref14 = _R['$']) != null ? _ref14.Name : void 0 : void 0)) {
routes[_R['$'].Name] = {
Code: (_ref15 = _R != null ? (_ref16 = _R['$']) != null ? _ref16.Code : void 0 : void 0) != null ? _ref15 : null
};
}
routeDirections = [];
_ref20 = (_ref17 = _R != null ? (_ref18 = _R.RouteDirectionList) != null ? (_ref19 = _ref18[0]) != null ? _ref19.RouteDirection : void 0 : void 0 : void 0) != null ? _ref17 : [];
for (_k = 0, _len2 = _ref20.length; _k < _len2; _k++) {
_RD = _ref20[_k];
if (((_ref21 = _RD['$']) != null ? _ref21.Name : void 0)) {
routeDirections.push({
Name: _RD['$'].Name,
Code: (_ref22 = _RD != null ? (_ref23 = _RD['$']) != null ? _ref23.Code : void 0 : void 0) != null ? _ref22 : null
});
}
}
if (routeDirections.length > 0) {
routes[_R['$'].Name].RouteDirections = routeDirections;
}
}
agency.Routes = routes;
}
}
return agency;
};
return GetRoutesForAgency;
})(AbstractService);
module.exports = GetRoutesForAgency;
}).call(this);