podchat-browser
Version:
Javascript SDK to use POD's Chat Service - Browser Only
82 lines (72 loc) • 2.25 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.UsersNotSeenDuration = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var UsersNotSeenDuration = /*#__PURE__*/function () {
function UsersNotSeenDuration(app) {
(0, _classCallCheck2["default"])(this, UsersNotSeenDuration);
this._users = {};
}
(0, _createClass2["default"])(UsersNotSeenDuration, [{
key: "get",
value: function get(id) {
return this._users[id];
}
}, {
key: "set",
value: function set(data) {
if (!this._users[data.id]) {
this._users[data.id] = new NotSeenDuration(data);
} else {
this._users[data.id].set(data);
}
}
}, {
key: "saveMany",
value: function saveMany(users, timeout) {
var _this = this;
if (users) {
Object.keys(users).forEach(function (item) {
_this.set({
id: item,
notSeenDuration: users[item],
timeout: timeout
});
});
}
}
}]);
return UsersNotSeenDuration;
}();
exports.UsersNotSeenDuration = UsersNotSeenDuration;
var NotSeenDuration = /*#__PURE__*/function () {
function NotSeenDuration(data) {
(0, _classCallCheck2["default"])(this, NotSeenDuration);
this._notSeenDuration = data.notSeenDuration;
this._lastUpdateTime = new Date().getTime();
this._timeoutTime = data.timeout;
}
(0, _createClass2["default"])(NotSeenDuration, [{
key: "getDuration",
value: function getDuration() {
return this._notSeenDuration;
}
}, {
key: "set",
value: function set(data) {
this._notSeenDuration = data.notSeenDuration;
this._lastUpdateTime = new Date().getTime();
this._timeoutTime = data.timeout;
}
}, {
key: "isDataValid",
value: function isDataValid() {
return this._lastUpdateTime && this._notSeenDuration && this._lastUpdateTime > new Date().getTime() - this._timeoutTime;
}
}]);
return NotSeenDuration;
}();