UNPKG

mobileoa-common-modules

Version:

移动办公平台前端公共功能模块

101 lines (89 loc) 2.94 kB
var angular = require('angular'); require('../modules'); require('jsUtil'); require('./TaskLocalforageService'); 'use strict'; 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; });