(function () { "use strict"; angular.module("enrServicesModule") .factory("officeJsonRegionFilter", ["$filter", "regionPropertiesParser", "regionsJsonParser", function ($filter, regionPropertiesParser, regionsJsonParser) { return { getRegionNodes: function (offCatJson, regionProperties) { var filteredRegionNodes = []; var isValidRegionsData = regionsJsonParser.validOfficesRegionsJsonExist(offCatJson); if (isValidRegionsData) { var regionsJson = regionsJsonParser.getOfficesRegionsJsonAsArray(offCatJson); // Pull all data from regionsJson associated with this region (JSON Format #1) var regionId = regionPropertiesParser.getRegionPrimaryId(regionProperties, false, true); filteredRegionNodes = $filter("filter")(regionsJson, { MAP_FIPS: regionId }, true); // Pull all data from regionsJson associated with this region (JSON Format #2) if (filteredRegionNodes.length === 0) { regionId = regionPropertiesParser.getRegionPrimaryId(regionProperties, true, false); filteredRegionNodes = $filter("filter")(regionsJson, { MAP_JURISDICTION_NAME: regionId }, true); } // Pull all data from regionsJson associated with this region (JSON Format #3) (This is hackey, I need a better way to handle these formats...) if (filteredRegionNodes.length === 0) { regionId = regionPropertiesParser.getRegionPrimaryId(regionProperties, true, false); if (regionId < 10) regionId = "0" + regionId; filteredRegionNodes = $filter("filter")(regionsJson, { MAP_JURISDICTION_NAME: regionId }, true); } } return filteredRegionNodes; } }; }]); }());