(function() { "use strict"; angular.module("raz") .service("correlationTierResourcesService", ["$q", "correlationApiService", "resourceTypes", function ($q, correlationApiService, resourceTypes) { var tierResourcesCache = {}; var typeOrder = [resourceTypes.TYPE_NONFICTION_BOOKS_ID, resourceTypes.TYPE_FOCUS_BOOKS_ID, resourceTypes.TYPE_PBL_ID, resourceTypes.TYPE_INTERACTIVE_LESSON_ID, resourceTypes.TYPE_INTERACTIVE_COMPONENT_ID, resourceTypes.TYPE_PROCESS_ACTIVITIES_ID, resourceTypes.TYPE_INVESTIGATION_PACK_ID, resourceTypes.TYPE_SCIENCE_IN_THE_NEWS_ID, resourceTypes.TYPE_VIDEO_ID, resourceTypes.TYPE_QUICK_READS_ID, resourceTypes.TYPE_SCIENCE_DIAGRAMS_ID, resourceTypes.TYPE_GAME_PACK_ID, resourceTypes.TYPE_I_FILE_ID, resourceTypes.TYPE_MYSTERY_FILE, resourceTypes.TYPE_CAREER_FILES_ID, resourceTypes.TYPE_CONCEPT_BOOKS_ID, resourceTypes.TYPE_DEBATE_ID, resourceTypes.TYPE_ACTIVITY_SHEET, resourceTypes.TYPE_IMAGE_CARDS]; function getTierResources(tier) { if (!tier) { return []; } var tierId = tier.correlation_tier_id; //if (!tierResourcesCache[tierId]) { // tierResourcesCache[tierId] = {}; //} if (tierResourcesCache[tierId]) { var deferred = $q.defer(); deferred.resolve(tierResourcesCache[tierId]['tierResources']); return deferred.promise; } else { tierResourcesCache[tierId] = { tierResources: [] }; return correlationApiService.getTierResources(tierId) .then(function (data) { //reduceResourcesInTier(data, gradeId, tierId); tierResourcesCache[tierId]['tierResources'] = data; return tierResourcesCache[tierId]['tierResources']; }) .catch(function (error) { console.log(error); }); } } //function reduceResourcesInTier(resources, gradeId, tierId) { // typeOrder.forEach(function (resourceType, index) { // if (resources[resourceType]) { // Object.keys(resources[resourceType]).forEach(function (materialKey) { // var material = resources[resourceType][materialKey]; // var materialId = material.material_id; // var lessonId = material.lesson_id; // // if (!tierResourcesCache[gradeId][tierId][resourceType]) { // tierResourcesCache[gradeId][tierId][resourceType] = []; // } // if (materialId && (tierResourcesCache[gradeId][tierId][resourceType].indexOf(materialId) === -1)) { // tierResourcesCache[gradeId][tierId][resourceType].push(materialId); // tierResourcesCache[gradeId][tierId].TierResources.push(material); // } else if (lessonId && (tierResourcesCache[gradeId][tierId][resourceType].indexOf(lessonId) === -1)) { // tierResourcesCache[gradeId][tierId][resourceType].push(lessonId); // tierResourcesCache[gradeId][tierId].TierResources.push(material); // } // }); // } // }); //} return { getTierResources: getTierResources }; }]); })();