(function() { "use strict"; angular.module("raz") .service("resourceCollectionService", ["$http", "$q", function ($http, $q) { var resourceCollection = {whatsNewInfo: [], popularBookInfo: []}; var curWhatsNewInfo = null; var curPopularBookInfo = null; function getCurWhatsNewInfo() { return curWhatsNewInfo; } function getCurPopularBookInfo() { return curPopularBookInfo; } function setInitWhatsNew(languageId, whatsNew) { resourceCollection.whatsNewInfo[languageId] = whatsNew; curWhatsNewInfo = whatsNew; } function setInitPopularBook(gradeId, popularBook) { resourceCollection.popularBookInfo[gradeId] = popularBook; curPopularBookInfo = popularBook; } function getWhatsNewInfo(languageId) { var deferred = $q.defer(); if (resourceCollection.whatsNewInfo[languageId]) { curWhatsNewInfo = resourceCollection.whatsNewInfo[languageId]; deferred.resolve(true); return deferred.promise; } else { var url = '/api/resourceCollection/whatsNewInfo/language/' + languageId; return $http.get(url) .then(function (response) { resourceCollection.whatsNewInfo[languageId] = response.data; curWhatsNewInfo = response.data; return true; }); } } function getPopularBookInfo(gradeId) { var deferred = $q.defer(); if (resourceCollection.popularBookInfo[gradeId]) { curPopularBookInfo = resourceCollection.popularBookInfo[gradeId]; deferred.resolve(true); return deferred.promise; } else { if (gradeId == 'K') { gradeId = 0; } var url = '/api/resourceCollection/popularBookInfo/grade/' + gradeId; return $http.get(url) .then(function (response) { resourceCollection.popularBookInfo[gradeId] = response.data; curPopularBookInfo = response.data; return true; }); } } function getResourceInfo(api, optionId) { if (api == 'whatsNewInfo') { return getWhatsNewInfo(optionId); } else if (api == 'popularBookInfo') { return getPopularBookInfo(optionId); } } return { getCurWhatsNewInfo: getCurWhatsNewInfo, getCurPopularBookInfo: getCurPopularBookInfo, setInitPopularBook: setInitPopularBook, setInitWhatsNew: setInitWhatsNew, getResourceInfo: getResourceInfo }; }]); })();