@eclass/cev-providers
Version:
Integración Proveedores CEV
109 lines • 13.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AdobeConnect = void 0;
const BaseProvider_1 = require("../BaseProvider");
/**
* Métodos del Proveedor Adobe Connect.
*/
const login_1 = require("./login");
const createParticipant_1 = require("./createParticipant");
const createMeeting_1 = require("./createMeeting");
const goMeeting_1 = require("./goMeeting");
const goMeetingTeacher_1 = require("./goMeetingTeacher");
const participantToMeeting_1 = require("./participantToMeeting");
class AdobeConnect extends BaseProvider_1.BaseProvider {
constructor(props) {
super();
this._participants = [];
this._logged = false;
const { url, username, password } = props;
this.url = url;
this._username = username;
this._password = password;
}
async login(props) {
const { username, password } = props;
const token = await (0, login_1.login)({ username, password, url: this.url });
if (token) {
this.token = token;
this._logged = true;
}
return token;
}
async createMeeting(meeting) {
/**
* Si no está logueado, loguea a la aplicación de Adobe Connect.
*/
if (!this._logged) {
await this.login({ username: this._username, password: this._password });
}
const Meeting = await (0, createMeeting_1.createMeeting)({
...meeting,
url: this.url,
token: this.token
});
if (!Meeting) {
throw new Error('Empty meeting');
}
this._meeting = Meeting;
return Meeting;
}
editParticipant(participant) {
throw new Error('Method not implemented.');
}
async createParticipant(participant) {
/**
* Si no está logueado, loguea a la aplicación de Adobe Connect.
*/
if (!this._logged) {
await this.login({ username: this._username, password: this._password });
}
const Participant = await (0, createParticipant_1.createParticipant)(participant, this.token, this.url);
if (!Participant) {
throw new Error('Empty participant');
}
this._participants.push(Participant);
return Participant;
}
async participantToMeeting(props) {
const { permissionId, principalId } = props;
let scoId = props.scoId || 0;
/**
* Si no está logueado, loguea a la aplicación de Adobe Connect.
*/
if (!this._logged) {
await this.login({ username: this._username, password: this._password });
}
/**
* Si no viene el scoId, mantenemos el mismo del `createMeeting`.
*/
if (!scoId) {
scoId = this._meeting.scoId;
}
return await (0, participantToMeeting_1.participantToMeeting)({
scoId,
principalId,
permissionId,
token: this.token,
url: this.url
});
}
async goMeeting(props) {
const { scoUrl, loginProps: { username, password } } = props;
/**
* Loguea a la aplicación de Adobe Connect con el usuario ingresado.
*/
const localToken = await (0, login_1.login)({ username, password, url: this.url });
return (0, goMeeting_1.goMeeting)(scoUrl, localToken);
}
async goMeetingTeacher(props) {
const { scoUrl, loginProps: { username, password } } = props;
/**
* Loguea a la aplicación de Adobe Connect con el usuario ingresado.
*/
const localToken = await (0, login_1.login)({ username, password, url: this.url });
return (0, goMeetingTeacher_1.goMeetingTeacher)(scoUrl, localToken);
}
}
exports.AdobeConnect = AdobeConnect;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvQWRvYmVDb25uZWN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBLGtEQUE4QztBQUU5Qzs7R0FFRztBQUNILG1DQUErQjtBQUUvQiwyREFBdUQ7QUFFdkQsbURBQStDO0FBQy9DLDJDQUF1QztBQUN2Qyx5REFBcUQ7QUFFckQsaUVBQTZEO0FBRTdELE1BQWEsWUFBYSxTQUFRLDJCQUFZO0lBVTVDLFlBQWEsS0FBMEI7UUFDckMsS0FBSyxFQUFFLENBQUE7UUFORCxrQkFBYSxHQUF1QixFQUFFLENBQUE7UUFHdEMsWUFBTyxHQUFHLEtBQUssQ0FBQTtRQUtyQixNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUE7UUFDekMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtJQUMzQixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBRSxLQUFpQjtRQUNuQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQTtRQUVwQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsYUFBSyxFQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDaEUsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtTQUNwQjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUUsT0FBZ0I7UUFDMUM7O1dBRUc7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFD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QUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQ25DLEdBQUcsS0FBSyxDQUFBO1FBRVQ7O1dBRUc7UUFDSCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsYUFBSyxFQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDckUsT0FBTyxJQUFBLG1DQUFnQixFQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0NBQ0Y7QUF4SUQsb0NBd0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9naW5Qcm9wcyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHtcbiAgTWVldGluZyxcbiAgUGFydGljaXBhbnQsXG4gIFByb3ZpZGVyQ29uc3RydWN0b3IsXG4gIFBhcnRpY2lwYW50VG9NZWV0aW5nUHJvcHMsXG4gIEdvTWVldGluZ1Byb3BzLFxuICBHb01lZXRpbmdQYXlsb2FkLFxuICBFZGl0UGFydGljaXBhbnRBdHRyaWJ1dGVzLFxuICBGZXRjaEVuZHBvaW50XG59IGZyb20gJy4uLydcbmltcG9ydCB7IEJhc2VQcm92aWRlciB9IGZyb20gJy4uL0Jhc2VQcm92aWRlcidcblxuLyoqXG4gKiBNw6l0b2RvcyBkZWwgUHJvdmVlZG9yIEFkb2JlIENvbm5lY3QuXG4gKi9cbmltcG9ydCB7IGxvZ2luIH0gZnJvbSAnLi9sb2dpbidcblxuaW1wb3J0IHsgY3JlYXRlUGFydGljaXBhbnQgfSBmcm9tICcuL2NyZWF0ZVBhcnRpY2lwYW50J1xuXG5pbXBvcnQgeyBjcmVhdGVNZWV0aW5nIH0gZnJvbSAnLi9jcmVhdGVNZWV0aW5nJ1xuaW1wb3J0IHsgZ29NZWV0aW5nIH0gZnJvbSAnLi9nb01lZXRpbmcnXG5pbXBvcnQgeyBnb01lZXRpbmdUZWFjaGVyIH0gZnJvbSAnLi9nb01lZXRpbmdUZWFjaGVyJ1xuXG5pbXBvcnQgeyBwYXJ0aWNpcGFudFRvTWVldGluZyB9IGZyb20gJy4vcGFydGljaXBhbnRUb01lZXRpbmcnXG5cbmV4cG9ydCBjbGFzcyBBZG9iZUNvbm5lY3QgZXh0ZW5kcyBCYXNlUHJvdmlkZXIge1xuICBwcml2YXRlIF91c2VybmFtZTogc3RyaW5nXG4gIHByaXZhdGUgX3Bhc3N3b3JkOiBzdHJpbmdcbiAgcHJpdmF0ZSBfbWVldGluZzogTWVldGluZ1xuICBwcml2YXRlIF9lbWFpbDogc3RyaW5nXG4gIHByaXZhdGUgX3BhcnRpY2lwYW50czogQXJyYXk8UGFydGljaXBhbnQ+ID0gW11cbiAgcHJpdmF0ZSBfdXNlcklkOiBzdHJpbmdcblxuICBwcml2YXRlIF9sb2dnZWQgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yIChwcm9wczogUHJvdmlkZXJDb25zdHJ1Y3Rvcikge1xuICAgIHN1cGVyKClcblxuICAgIGNvbnN0IHsgdXJsLCB1c2VybmFtZSwgcGFzc3dvcmQgfSA9IHByb3BzXG4gICAgdGhpcy51cmwgPSB1cmxcbiAgICB0aGlzLl91c2VybmFtZSA9IHVzZXJuYW1lXG4gICAgdGhpcy5fcGFzc3dvcmQgPSBwYXNzd29yZFxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luIChwcm9wczogTG9naW5Qcm9wcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyB1c2VybmFtZSwgcGFzc3dvcmQgfSA9IHByb3BzXG5cbiAgICBjb25zdCB0b2tlbiA9IGF3YWl0IGxvZ2luKHsgdXNlcm5hbWUsIHBhc3N3b3JkLCB1cmw6IHRoaXMudXJsIH0pXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB0aGlzLnRva2VuID0gdG9rZW5cbiAgICAgIHRoaXMuX2xvZ2dlZCA9IHRydWVcbiAgICB9XG4gICAgcmV0dXJuIHRva2VuXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlTWVldGluZyAobWVldGluZzogTWVldGluZyk6IFByb21pc2U8TWVldGluZz4ge1xuICAgIC8qKlxuICAgICAqIFNpIG5vIGVzdMOhIGxvZ3VlYWRvLCBsb2d1ZWEgYSBsYSBhcGxpY2FjacOzbiBkZSBBZG9iZSBDb25uZWN0LlxuICAgICAqL1xuICAgIGlmICghdGhpcy5fbG9nZ2VkKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luKHsgdXNlcm5hbWU6IHRoaXMuX3VzZXJuYW1lLCBwYXNzd29yZDogdGhpcy5fcGFzc3dvcmQgfSlcbiAgICB9XG5cbiAgICBjb25zdCBNZWV0aW5nID0gYXdhaXQgY3JlYXRlTWVldGluZyh7XG4gICAgICAuLi5tZWV0aW5nLFxuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIHRva2VuOiB0aGlzLnRva2VuXG4gICAgfSlcblxuICAgIGlmICghTWVldGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBtZWV0aW5nJylcbiAgICB9XG5cbiAgICB0aGlzLl9tZWV0aW5nID0gTWVldGluZ1xuICAgIHJldHVybiBNZWV0aW5nXG4gIH1cblxuICBwdWJsaWMgZWRpdFBhcnRpY2lwYW50IChcbiAgICBwYXJ0aWNpcGFudDogRWRpdFBhcnRpY2lwYW50QXR0cmlidXRlc1xuICApOiBQcm9taXNlPEZldGNoRW5kcG9pbnQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJylcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVQYXJ0aWNpcGFudCAoXG4gICAgcGFydGljaXBhbnQ6IFBhcnRpY2lwYW50XG4gICk6IFByb21pc2U8UGFydGljaXBhbnQ+IHtcbiAgICAvKipcbiAgICAgKiBTaSBubyBlc3TDoSBsb2d1ZWFkbywgbG9ndWVhIGEgbGEgYXBsaWNhY2nDs24gZGUgQWRvYmUgQ29ubmVjdC5cbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuX2xvZ2dlZCkge1xuICAgICAgYXdhaXQgdGhpcy5sb2dpbih7IHVzZXJuYW1lOiB0aGlzLl91c2VybmFtZSwgcGFzc3dvcmQ6IHRoaXMuX3Bhc3N3b3JkIH0pXG4gICAgfVxuXG4gICAgY29uc3QgUGFydGljaXBhbnQgPSBhd2FpdCBjcmVhdGVQYXJ0aWNpcGFudChcbiAgICAgIHBhcnRpY2lwYW50LFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHRoaXMudXJsXG4gICAgKVxuXG4gICAgaWYgKCFQYXJ0aWNpcGFudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBwYXJ0aWNpcGFudCcpXG4gICAgfVxuXG4gICAgdGhpcy5fcGFydGljaXBhbnRzLnB1c2goUGFydGljaXBhbnQpXG4gICAgcmV0dXJuIFBhcnRpY2lwYW50XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcGFydGljaXBhbnRUb01lZXRpbmcgKFxuICAgIHByb3BzOiBQYXJ0aWNpcGFudFRvTWVldGluZ1Byb3BzXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgcGVybWlzc2lvbklkLCBwcmluY2lwYWxJZCB9ID0gcHJvcHNcbiAgICBsZXQgc2NvSWQgPSBwcm9wcy5zY29JZCB8fCAwXG5cbiAgICAvKipcbiAgICAgKiBTaSBubyBlc3TDoSBsb2d1ZWFkbywgbG9ndWVhIGEgbGEgYXBsaWNhY2nDs24gZGUgQWRvYmUgQ29ubmVjdC5cbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuX2xvZ2dlZCkge1xuICAgICAgYXdhaXQgdGhpcy5sb2dpbih7IHVzZXJuYW1lOiB0aGlzLl91c2VybmFtZSwgcGFzc3dvcmQ6IHRoaXMuX3Bhc3N3b3JkIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2kgbm8gdmllbmUgZWwgc2NvSWQsIG1hbnRlbmVtb3MgZWwgbWlzbW8gZGVsIGBjcmVhdGVNZWV0aW5nYC5cbiAgICAgKi9cbiAgICBpZiAoIXNjb0lkKSB7XG4gICAgICBzY29JZCA9IHRoaXMuX21lZXRpbmcuc2NvSWRcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgcGFydGljaXBhbnRUb01lZXRpbmcoe1xuICAgICAgc2NvSWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIHBlcm1pc3Npb25JZCxcbiAgICAgIHRva2VuOiB0aGlzLnRva2VuLFxuICAgICAgdXJsOiB0aGlzLnVybFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ29NZWV0aW5nIChwcm9wczogR29NZWV0aW5nUHJvcHMpOiBQcm9taXNlPEdvTWVldGluZ1BheWxvYWQ+IHtcbiAgICBjb25zdCB7XG4gICAgICBzY29VcmwsXG4gICAgICBsb2dpblByb3BzOiB7IHVzZXJuYW1lLCBwYXNzd29yZCB9XG4gICAgfSA9IHByb3BzXG5cbiAgICAvKipcbiAgICAgKiBMb2d1ZWEgYSBsYSBhcGxpY2FjacOzbiBkZSBBZG9iZSBDb25uZWN0IGNvbiBlbCB1c3VhcmlvIGluZ3Jlc2Fkby5cbiAgICAgKi9cbiAgICBjb25zdCBsb2NhbFRva2VuID0gYXdhaXQgbG9naW4oeyB1c2VybmFtZSwgcGFzc3dvcmQsIHVybDogdGhpcy51cmwgfSlcbiAgICByZXR1cm4gZ29NZWV0aW5nKHNjb1VybCwgbG9jYWxUb2tlbilcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnb01lZXRpbmdUZWFjaGVyIChwcm9wczogR29NZWV0aW5nUHJvcHMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNjb1VybCxcbiAgICAgIGxvZ2luUHJvcHM6IHsgdXNlcm5hbWUsIHBhc3N3b3JkIH1cbiAgICB9ID0gcHJvcHNcblxuICAgIC8qKlxuICAgICAqIExvZ3VlYSBhIGxhIGFwbGljYWNpw7NuIGRlIEFkb2JlIENvbm5lY3QgY29uIGVsIHVzdWFyaW8gaW5ncmVzYWRvLlxuICAgICAqL1xuICAgIGNvbnN0IGxvY2FsVG9rZW4gPSBhd2FpdCBsb2dpbih7IHVzZXJuYW1lLCBwYXNzd29yZCwgdXJsOiB0aGlzLnVybCB9KVxuICAgIHJldHVybiBnb01lZXRpbmdUZWFjaGVyKHNjb1VybCwgbG9jYWxUb2tlbilcbiAgfVxufVxuIl19