--- /dev/null
+(function () {
+ "use strict";
+
+ angular
+ .module("nero.app")
+ .factory("teacherService", teacherService);
+
+ teacherService.$inject = ["$http", "$q", "promiseCache", "errorHandlerService", "$filter"];
+
+ function teacherService($http, $q, promiseCache, errorHandlerService, $filter) {
+
+ var service = {
+ getTeachers: getTeachers
+ };
+
+ return service;
+
+ /////////////////
+
+ // I get all of the teachers in the remote collection.
+ function getTeachers(groupId, isPersonalGroup) {
+ var config = {};
+ config.params = {
+ cmd: "getTeachers",
+ groupId: groupId,
+ isPersonalGroup: isPersonalGroup
+ };
+
+ return promiseCache({
+ promise: function() {
+ return $http.get(actionURLAjax, config);
+ },
+ ttl: 10000, //10 sec
+ key: JSON.stringify(config.params)
+ })
+ .then(getTeachersComplete)
+ ["catch"](getTeachersFailed);
+
+ function getTeachersComplete(response) {
+ if (response.data.success) {
+ return response.data.teachers;
+ }
+
+ // If success variable is false or undefined then throw an error
+ var message = $filter("translate")("ext.nero.services.teacher.toastr-get-errorMessage");
+ var error = errorHandlerService.buildErrorObject(response, message);
+ return ($q.reject(error));
+ }
+
+ function getTeachersFailed(error) {
+ // If message is undefined then throw unknown error. Otherwise, use expected error message.
+ if (!angular.isObject(error.data) || !error.data.message) {
+ var message = $filter("translate")("ext.nero.services.teacher.toastr-get-errorMessage");
+ return ($q.reject(message));
+ }
+
+ return ($q.reject(error.data.message));
+ }
+ }
+ }
+})();