@di-zed/yandex-smart-home
Version:
The Yandex Smart Home skills for the different device types.
52 lines (51 loc) • 1.36 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @author DiZed Team
* @copyright Copyright (c) DiZed Team (https://github.com/di-zed/)
*/
const registry_1 = __importDefault(require("./registry"));
/**
* Topic Anonymous User Registry.
*/
class TopicAnonUserRegistry extends registry_1.default {
constructor() {
super(...arguments);
/**
* @inheritDoc
*/
this.data = {};
}
/**
* Mark User as Anonymous.
*
* @param userName
* @returns boolean
*/
markUserAsAnonymous(userName) {
return this.set(userName, new Date());
}
/**
* Check if the user is anonymous.
*
* @param userName
* @returns boolean
*/
isUserAnonymous(userName) {
const requestedAt = this.get(userName);
if (requestedAt !== undefined) {
const now = new Date();
now.setSeconds(now.getSeconds() - 300); // 5 minutes
if (new Date(requestedAt) < now) {
this.delete(userName);
return false;
}
return true;
}
return false;
}
}
exports.default = new TopicAnonUserRegistry();