@di-zed/yandex-smart-home
Version:
The Yandex Smart Home skills for the different device types.
75 lines (74 loc) • 3.22 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
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 i18n_1 = __importDefault(require("i18n"));
const configProvider_1 = __importDefault(require("../providers/configProvider"));
/**
* Client Repository.
*/
class ClientRepository {
/**
* Get Client by ID.
*
* @param appId
* @returns Promise<ClientInterface>
*/
getClientById(appId) {
return __awaiter(this, void 0, void 0, function* () {
const functionGetClientById = configProvider_1.default.getConfigOption('functionGetClientById');
if (typeof functionGetClientById === 'function') {
return (yield functionGetClientById(appId));
}
return new Promise((resolve, reject) => {
if (appId === parseInt(process.env.YANDEX_APP_ID, 10)) {
return resolve({
id: appId,
clientId: process.env.YANDEX_APP_CLIENT_ID,
clientSecret: process.env.YANDEX_APP_CLIENT_SECRET,
});
}
return reject(i18n_1.default.__('A client with App ID #%s does not exist.', String(appId)));
});
});
}
/**
* Get Client by Client ID.
*
* @param clientId
* @returns Promise<ClientInterface>
*/
getClientByClientId(clientId) {
return __awaiter(this, void 0, void 0, function* () {
const functionGetClientByClientId = configProvider_1.default.getConfigOption('functionGetClientByClientId');
if (typeof functionGetClientByClientId === 'function') {
return (yield functionGetClientByClientId(clientId));
}
return new Promise((resolve, reject) => {
if (clientId === process.env.YANDEX_APP_CLIENT_ID) {
return resolve({
id: parseInt(process.env.YANDEX_APP_ID, 10),
clientId: clientId,
clientSecret: process.env.YANDEX_APP_CLIENT_SECRET,
});
}
return reject(i18n_1.default.__('A client with Client ID "%s" does not exist.', clientId));
});
});
}
}
exports.default = new ClientRepository();