UNPKG

teambition-sdk-socket

Version:
185 lines 8.37 kB
'use strict'; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var BaseModel_1 = require("./BaseModel"); var BaseCollection_1 = require("./BaseCollection"); var MaxIdCollection_1 = require("./tasks/MaxIdCollection"); var Subtask_1 = require("../schemas/Subtask"); var index_1 = require("../utils/index"); var SubtaskModel = (function (_super) { __extends(SubtaskModel, _super); function SubtaskModel() { var _this = _super !== null && _super.apply(this, arguments) || this; _this._schemaName = 'Subtask'; return _this; } SubtaskModel.prototype.addOne = function (subtask) { var result = index_1.dataToSchema(subtask, Subtask_1.default); return this._save(result); }; SubtaskModel.prototype.getOne = function (_subtaskId) { return this._get(_subtaskId); }; /** * 不分页不用 Collection */ SubtaskModel.prototype.addToTask = function (_taskId, subtasks) { var result = index_1.datasToSchemas(subtasks, Subtask_1.default); return this._saveCollection("task:subtasks/" + _taskId, result, this._schemaName, function (data) { return data._taskId === _taskId; }); }; SubtaskModel.prototype.getFromTask = function (_taskId) { return this._get("task:subtasks/" + _taskId); }; SubtaskModel.prototype.addMySubtasksWithInbox = function (userId, subtasks) { var result = index_1.datasToSchemas(subtasks, Subtask_1.default); var dbIndex = "subtasks:me/withInbox"; return this._saveCollection(dbIndex, result, this._schemaName, function (data) { return data._executorId === userId && !data.isDone; }); }; SubtaskModel.prototype.getMySubtasksWithInbox = function () { var dbIndex = "subtasks:me/withInbox"; return this._get(dbIndex); }; SubtaskModel.prototype.addMyDoneSubtasksWithInbox = function (userId, subtasks) { var result = index_1.datasToSchemas(subtasks, Subtask_1.default); var dbIndex = "subtasks:me:done/withInbox"; return this._saveCollection(dbIndex, result, this._schemaName, function (data) { return data._executorId === userId && data.isDone; }); }; SubtaskModel.prototype.getMyDoneSubtasksWithInbox = function () { var dbIndex = "subtasks:me:done/withInbox"; return this._get(dbIndex); }; SubtaskModel.prototype.addMyCreatedSubtasksWithInbox = function (userId, subtasks) { var result = index_1.datasToSchemas(subtasks, Subtask_1.default); var dbIndex = "subtasks:me/createdAndWithInbox"; return this._saveCollection(dbIndex, result, this._schemaName, function (data) { return data._creatorId === userId; }); }; SubtaskModel.prototype.getMyCreatedSubtasksWithInbox = function () { var dbIndex = "subtasks:me/createdAndWithInbox"; return this._get(dbIndex); }; /** * _collections 索引是 `organization:subtasks/${organization._id}` */ SubtaskModel.prototype.addOrgMySubtasks = function (userId, organization, tasks, page) { var result = index_1.datasToSchemas(tasks, Subtask_1.default); var dbIndex = "organization:subtasks/" + organization._id; var collection = this._collections.get(dbIndex); if (!collection) { collection = new BaseCollection_1.default(this._schemaName, function (data) { return organization.projectIds.indexOf(data._projectId) !== -1 && !data.dueDate && data._executorId === userId && !data.isDone; }, dbIndex); this._collections.set(dbIndex, collection); } return collection.addPage(page, result); }; SubtaskModel.prototype.getOrgMySubtasks = function (organizationId, page) { var collection = this._collections.get("organization:subtasks/" + organizationId); if (collection) { return collection.get(page); } return null; }; /** * _collections 的索引是 `organization:subtasks:due/${organization._id}` */ SubtaskModel.prototype.addOrgMyDueSubtasks = function (userId, organization, subtasks, page) { var dbIndex = "organization:subtasks:due/" + organization._id; var result = index_1.datasToSchemas(subtasks, Subtask_1.default); var collection = this._collections.get(dbIndex); if (!collection) { collection = new BaseCollection_1.default(this._schemaName, function (data) { return organization.projectIds.indexOf(data._projectId) !== -1 && !!data.dueDate && data._executorId === userId && !data.isDone; }, dbIndex); this._collections.set(dbIndex, collection); } return collection.addPage(page, result); }; SubtaskModel.prototype.getOrgMyDueSubtasks = function (organizationId, page) { var collection = this._collections.get("organization:subtasks:due/" + organizationId); if (collection) { return collection.get(page); } return null; }; /** * _collections 的索引是 `organization:subtasks:done/${organization._id}` */ SubtaskModel.prototype.addOrgMyDoneSubtasks = function (userId, organization, tasks, page) { var result = index_1.datasToSchemas(tasks, Subtask_1.default); var dbIndex = "organization:subtasks:done/" + organization._id; var collection = this._collections.get(dbIndex); if (!collection) { collection = new BaseCollection_1.default(this._schemaName, function (data) { return organization.projectIds.indexOf(data._projectId) !== -1 && data.isDone && data._executorId === userId; }, dbIndex); this._collections.set(dbIndex, collection); } return collection.addPage(page, result); }; SubtaskModel.prototype.getOrgMyDoneSubtasks = function (organizationId, page) { var collection = this._collections.get("organization:subtasks:done/" + organizationId); if (collection) { return collection.get(page); } return null; }; /** * _collections 的索引是 `organization:subtasks:created/${organization._id}` */ SubtaskModel.prototype.addOrgMyCreatedSubtasks = function (userId, organization, tasks, page) { var result = index_1.datasToSchemas(tasks, Subtask_1.default); var dbIndex = "organization:subtasks:created/" + organization._id; var collection = this._collections.get(dbIndex); if (!collection) { collection = new MaxIdCollection_1.default(this._schemaName, function (data) { return organization.projectIds.indexOf(data._projectId) !== -1 && data._executorId === userId; }, dbIndex); this._collections.set(dbIndex, collection); } return collection.maxAddPage(page, result); }; SubtaskModel.prototype.getOrgMyCreatedSubtasks = function (organizationId, page) { var collection = this._collections.get("organization:subtasks:created/" + organizationId); if (collection) { return collection.get(page); } return null; }; SubtaskModel.prototype.getOrgMyCreatedMaxId = function (organizationId) { var dbIndex = "organization:subtasks:created/" + organizationId; var collection = this._collections.get(dbIndex); if (collection) { return collection.maxId; } return void 0; }; return SubtaskModel; }(BaseModel_1.default)); exports.SubtaskModel = SubtaskModel; exports.default = new SubtaskModel; //# sourceMappingURL=SubtaskModel.js.map