UNPKG

teambition-sdk-socket

Version:
60 lines 2.67 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 Feedback_1 = require("../schemas/Feedback"); var utils_1 = require("../utils"); var FeedbackModel = (function (_super) { __extends(FeedbackModel, _super); function FeedbackModel() { var _this = _super !== null && _super.apply(this, arguments) || this; _this._schemaName = 'Feedback'; return _this; } FeedbackModel.prototype.addOne = function (data) { var result = utils_1.dataToSchema(data, Feedback_1.default); return this._save(result); }; FeedbackModel.prototype.getOne = function (feedbackId) { return this._get(feedbackId); }; FeedbackModel.prototype.addProjectFeedbacks = function (projectId, feedbacks, page, count, from, to) { if (page === void 0) { page = 1; } if (count === void 0) { count = 100; } var result = utils_1.datasToSchemas(feedbacks, Feedback_1.default); var dbIndex = "project:feedbacks:" + from + ":" + to + "/" + projectId; var cache = this._collections.get(dbIndex); if (!cache) { cache = new BaseCollection_1.default(this._schemaName, function (data) { var created = new Date(data.created); return data.boundToObjectType === 'project' && data._boundToObjectId === projectId && created >= new Date(from) && created < new Date(to); }, dbIndex, count); this._collections.set(dbIndex, cache); } return cache.addPage(page, result); }; FeedbackModel.prototype.getProjectFeedbacks = function (projectId, page, from, to) { var collection = this._collections.get("project:feedbacks:" + from + ":" + to + "/" + projectId); if (collection) { return collection.get(page); } return null; }; return FeedbackModel; }(BaseModel_1.default)); exports.FeedbackModel = FeedbackModel; exports.default = new FeedbackModel; //# sourceMappingURL=FeedbackModel.js.map