(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.VOCABULARY_SUBJECT_ID = 7; service.READING_SUBJECT_NAME = 'reading'; service.SCIENCE_SUBJECT_NAME = 'science'; service.VOCABULARY_SUBJECT_NAME = 'vocabulary'; service.getSubjects = function () { return memberInfo.subjects; }; service.getSubscribedSubjectsByName = function (subjects) { return _.indexBy(service.getSubscribedSubjects(subjects), 'subject_name'); }; service.getSubscribedSubjectByName = function (name, subjects) { return service.getSubscribedSubjectsByName(subjects)[name]; }; service.isSubscribedSubjectName = function (name, subjects) { return service.getSubscribedSubjectsByName(subjects).hasOwnProperty(name); }; service.getSubscribedSubjects = function (subjects) { return _.filter(subjects || memberInfo.subjects, function (subject) { return subject.is_subscribed; }); }; service.haveMultipleSubscribedSubjects = function (subjects) { return service.getSubscribedSubjects(subjects).length > 1; }; service.isValidSubject = function (subject, subjects) { return _.contains(service.getSubjects(subjects), subject) }; return service; }]) })();