mobileoa-common-modules
Version:
移动办公平台前端公共功能模块
101 lines (89 loc) • 2.94 kB
JavaScript
var angular = require('angular');
require('../modules');
require('jsUtil');
require('./TaskLocalforageService');
;
var module = angular.module('task.services');
/**
* 任务仓库。
*/
module.factory('TaskRepository', function(TaskLocalforageService, $q) {
var service = {
/**
* 通过id获取任务。
* @param {String} id 任务id
* @return {Task} 任务对象
*/
getTaskById: function(taskId) {
return TaskLocalforageService.getById(taskId);
},
getDiscussionById: function(discussionId) {
return TaskLocalforageService.getDiscussionById(discussionId);
},
/**
* 新增或者更新任务。
* <p>
* 若为单个任务,则新增或者更新任务;若为任务列表,则添加任务列表。
* </p>
* <p>
* 第一次调用此方法,应该是在成功添加一条任务时,初始化添加任务缓存。
* </p>
* @param {Array<Task>|task} tasks 任务实体或任务列表
*/
addOrUpdateTasks: function(tasks) {
var promises;
if (jsUtil.isArray(tasks)) {
promises = jsUtil.map(tasks, function(task) {
return TaskLocalforageService.setTask(task);
});
return $q.all(promises);
} else {
return TaskLocalforageService.setTask(tasks);
}
},
/**
* 添加任务讨论
* @param {Array<Discussion>|Discussion} discussions 任务讨论
*/
addDiscussion: function(discussions) {
var promises;
if (jsUtil.isArray(discussions)) {
promises = jsUtil.map(discussions, function(discussion) {
return TaskLocalforageService.addDiscussion(discussion);
});
return $q.all(promises);
} else {
return TaskLocalforageService.addDiscussion(discussions);
}
},
/**
* 获取某个任务的任务讨论。
* @param {String} taskId 任务id
* @return Promise
*/
getDiscussions: function(taskId) {
return TaskLocalforageService.getDiscussions(taskId);
},
changeDiscussions: function(discussions) {
return TaskLocalforageService.changeDiscussions(discussions);
},
changeDiscussion: function(discussion, cacheId) {
return TaskLocalforageService.changeDiscussion(discussion, cacheId);
},
/**
* 移除缓存中已缓存的某一任务。
* @param {String} itemName 需要移除值的属性
* @return Promise
*/
removeItem: function(taskId) {
return TaskLocalforageService.removeItem(taskId);
},
removeDiscussionFromCache: function(discussionId) {
return TaskLocalforageService.removeDiscussionFromCache(discussionId);
},
setDiscussion: function(discussion) {
return TaskLocalforageService.setDiscussion(discussion);
}
};
return service;
});