(function () { "use strict"; angular.module('shared') .service('subjects', ['memberInfo', '_', function subjectsService(memberInfo, _) { var service = this; service.READING_SUBJECT_ID = 1; service.SCIENCE_SUBJECT_ID = 2; service.READING_SUBJECT_NAME = 'reading'; service.SCIENCE_SUBJECT_NAME = 'science'; service.getSubjects = function () { return memberInfo.subjects; }; service.getSubscribedSubjectsByName = _.memoize(function () { return _.indexBy(service.getSubscribedSubjects(), 'subject_name'); }); service.getSubscribedSubjectByName = function (name) { return service.getSubscribedSubjectsByName()[name]; }; service.isSubscribedSubjectName = function (name) { return service.getSubscribedSubjectsByName().hasOwnProperty(name); }; service.getSubscribedSubjects = _.memoize(function () { return _.filter(memberInfo.subjects, function (subject) { return subject.is_subscribed; }); }); service.haveMultipleSubscribedSubjects = function () { return service.getSubscribedSubjects().length > 1; }; service.isValidSubject = function (subject) { return _.contains(service.getSubjects(), subject) }; return service; }]) })();