openvidu-node-client: builder pattern to object pattern

pull/73/head
pabloFuente 2018-04-23 11:06:16 +02:00
parent 43894c215b
commit 60948f7607
20 changed files with 135 additions and 312 deletions

View File

@ -1,7 +1,7 @@
import { Session } from "./Session"; import { Session } from './Session';
import { SessionProperties } from "./SessionProperties"; import { SessionProperties } from './SessionProperties';
import { Recording } from "./Recording"; import { Recording } from './Recording';
import { RecordingProperties } from "./RecordingProperties"; import { RecordingProperties } from './RecordingProperties';
export declare class OpenVidu { export declare class OpenVidu {
private urlOpenViduServer; private urlOpenViduServer;
private static readonly API_RECORDINGS; private static readonly API_RECORDINGS;

View File

@ -37,9 +37,9 @@ var OpenVidu = /** @class */ (function () {
var properties = param2; var properties = param2;
requestBody = JSON.stringify({ requestBody = JSON.stringify({
session: sessionId, session: sessionId,
name: properties.name(), name: !!properties.name ? properties.name : '',
recordingLayout: (!!properties.recordingLayout() ? properties.recordingLayout() : ''), recordingLayout: !!properties.recordingLayout ? properties.recordingLayout : '',
customLayout: (!!properties.customLayout() ? properties.customLayout() : '') customLayout: !!properties.customLayout ? properties.customLayout : ''
}); });
} }
else { else {
@ -127,7 +127,7 @@ var OpenVidu = /** @class */ (function () {
req.on('error', function (e) { req.on('error', function (e) {
reject(new Error(e)); reject(new Error(e));
}); });
//req.write(); // req.write();
req.end(); req.end();
}); });
}; };
@ -164,7 +164,7 @@ var OpenVidu = /** @class */ (function () {
req.on('error', function (e) { req.on('error', function (e) {
reject(new Error(e)); reject(new Error(e));
}); });
//req.write(); // req.write();
req.end(); req.end();
}); });
}; };
@ -191,9 +191,10 @@ var OpenVidu = /** @class */ (function () {
if (res.statusCode === 200) { if (res.statusCode === 200) {
// SUCCESS response from openvidu-server (JSON arrays of recordings in JSON format). Resolve list of new recordings // SUCCESS response from openvidu-server (JSON arrays of recordings in JSON format). Resolve list of new recordings
var recordingArray = []; var recordingArray = [];
var responseItems = JSON.parse(body)['items']; var responseItems = JSON.parse(body).items;
for (var i = 0; i < responseItems.length; i++) { for (var _i = 0, responseItems_1 = responseItems; _i < responseItems_1.length; _i++) {
recordingArray.push(new Recording_1.Recording(responseItems[i])); var item = responseItems_1[_i];
recordingArray.push(new Recording_1.Recording(item));
} }
resolve(recordingArray); resolve(recordingArray);
} }
@ -206,7 +207,7 @@ var OpenVidu = /** @class */ (function () {
req.on('error', function (e) { req.on('error', function (e) {
reject(new Error(e)); reject(new Error(e));
}); });
//req.write(); // req.write();
req.end(); req.end();
}); });
}; };
@ -243,7 +244,7 @@ var OpenVidu = /** @class */ (function () {
req.on('error', function (e) { req.on('error', function (e) {
reject(new Error(e)); reject(new Error(e));
}); });
//req.write(); // req.write();
req.end(); req.end();
}); });
}; };
@ -256,7 +257,7 @@ var OpenVidu = /** @class */ (function () {
this.hostname = this.urlOpenViduServer.split(':')[1].replace(/\//g, ''); this.hostname = this.urlOpenViduServer.split(':')[1].replace(/\//g, '');
this.port = parseInt(this.urlOpenViduServer.split(':')[2].replace(/\//g, '')); this.port = parseInt(this.urlOpenViduServer.split(':')[2].replace(/\//g, ''));
} }
else if (urlSplitted.length == 2) { else if (urlSplitted.length === 2) {
this.hostname = this.urlOpenViduServer.split(':')[0].replace(/\//g, ''); this.hostname = this.urlOpenViduServer.split(':')[0].replace(/\//g, '');
this.port = parseInt(this.urlOpenViduServer.split(':')[1].replace(/\//g, '')); this.port = parseInt(this.urlOpenViduServer.split(':')[1].replace(/\//g, ''));
} }

File diff suppressed because one or more lines are too long

View File

@ -20,6 +20,6 @@ var OpenViduRole;
(function (OpenViduRole) { (function (OpenViduRole) {
OpenViduRole["SUBSCRIBER"] = "SUBSCRIBER"; OpenViduRole["SUBSCRIBER"] = "SUBSCRIBER";
OpenViduRole["PUBLISHER"] = "PUBLISHER"; OpenViduRole["PUBLISHER"] = "PUBLISHER";
OpenViduRole["MODERATOR"] = "MODERATOR"; // SUBSCRIBER + PUBLIHSER permissions + can force unpublish() and disconnect() over a third-party stream or user OpenViduRole["MODERATOR"] = "MODERATOR";
})(OpenViduRole = exports.OpenViduRole || (exports.OpenViduRole = {})); })(OpenViduRole = exports.OpenViduRole || (exports.OpenViduRole = {}));
//# sourceMappingURL=OpenViduRole.js.map //# sourceMappingURL=OpenViduRole.js.map

View File

@ -1 +1 @@
{"version":3,"file":"OpenViduRole.js","sourceRoot":"","sources":["../src/OpenViduRole.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAEH,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,yCAAyB,CAAA;IACzB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA,CAAE,gHAAgH;AAC1I,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB"} {"version":3,"file":"OpenViduRole.js","sourceRoot":"","sources":["../src/OpenViduRole.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAEH,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,yCAAyB,CAAA;IACzB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;AACxB,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB"}

View File

@ -1,5 +1,5 @@
import { TokenOptions } from './TokenOptions';
import { SessionProperties } from './SessionProperties'; import { SessionProperties } from './SessionProperties';
import { TokenOptions } from './TokenOptions';
export declare class Session { export declare class Session {
private hostname; private hostname;
private port; private port;

View File

@ -16,17 +16,19 @@
* *
*/ */
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var MediaMode_1 = require("./MediaMode");
var OpenViduRole_1 = require("./OpenViduRole"); var OpenViduRole_1 = require("./OpenViduRole");
var SessionProperties_1 = require("./SessionProperties"); var RecordingLayout_1 = require("./RecordingLayout");
var RecordingMode_1 = require("./RecordingMode");
var https = require('https'); var https = require('https');
var Session = /** @class */ (function () { var Session = /** @class */ (function () {
function Session(hostname, port, basicAuth, properties) { function Session(hostname, port, basicAuth, properties) {
this.hostname = hostname; this.hostname = hostname;
this.port = port; this.port = port;
this.basicAuth = basicAuth; this.basicAuth = basicAuth;
this.sessionId = ""; this.sessionId = '';
if (properties == null) { if (properties === null) {
this.properties = new SessionProperties_1.SessionProperties.Builder().build(); this.properties = {};
} }
else { else {
this.properties = properties; this.properties = properties;
@ -39,10 +41,10 @@ var Session = /** @class */ (function () {
resolve(_this.sessionId); resolve(_this.sessionId);
} }
var requestBody = JSON.stringify({ var requestBody = JSON.stringify({
'mediaMode': _this.properties.mediaMode(), mediaMode: !!_this.properties.mediaMode ? _this.properties.mediaMode : MediaMode_1.MediaMode.ROUTED,
'recordingMode': _this.properties.recordingMode(), recordingMode: !!_this.properties.recordingMode ? _this.properties.recordingMode : RecordingMode_1.RecordingMode.MANUAL,
'defaultRecordingLayout': _this.properties.defaultRecordingLayout(), defaultRecordingLayout: !!_this.properties.defaultRecordingLayout ? _this.properties.defaultRecordingLayout : RecordingLayout_1.RecordingLayout.BEST_FIT,
'defaultCustomLayout': _this.properties.defaultCustomLayout() defaultCustomLayout: !!_this.properties.defaultCustomLayout ? _this.properties.defaultCustomLayout : ''
}); });
var options = { var options = {
hostname: _this.hostname, hostname: _this.hostname,
@ -84,21 +86,11 @@ var Session = /** @class */ (function () {
Session.prototype.generateToken = function (tokenOptions) { Session.prototype.generateToken = function (tokenOptions) {
var _this = this; var _this = this;
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var requestBody; var requestBody = JSON.stringify({
if (!!tokenOptions) { session: _this.sessionId,
requestBody = JSON.stringify({ role: !!tokenOptions.role ? tokenOptions.role : OpenViduRole_1.OpenViduRole.PUBLISHER,
'session': _this.sessionId, data: !!tokenOptions.data ? tokenOptions.data : ''
'role': tokenOptions.getRole(), });
'data': tokenOptions.getData()
});
}
else {
requestBody = JSON.stringify({
'session': _this.sessionId,
'role': OpenViduRole_1.OpenViduRole.PUBLISHER,
'data': ''
});
}
var options = { var options = {
hostname: _this.hostname, hostname: _this.hostname,
port: _this.port, port: _this.port,

View File

@ -1 +1 @@
{"version":3,"file":"Session.js","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"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"} {"version":3,"file":"Session.js","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"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"}

View File

@ -1,17 +1,5 @@
import { OpenViduRole } from "./OpenViduRole"; import { OpenViduRole } from './OpenViduRole';
export declare class TokenOptions { export interface TokenOptions {
private data; data: string;
private role; role: OpenViduRole;
constructor(data: string, role: OpenViduRole);
getData(): string;
getRole(): OpenViduRole;
}
export declare namespace TokenOptions {
class Builder {
private dataProp;
private roleProp;
build(): TokenOptions;
data(data: string): Builder;
role(role: OpenViduRole): Builder;
}
} }

View File

@ -16,42 +16,4 @@
* *
*/ */
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var OpenViduRole_1 = require("./OpenViduRole");
var TokenOptions = /** @class */ (function () {
function TokenOptions(data, role) {
this.data = data;
this.role = role;
}
TokenOptions.prototype.getData = function () {
return this.data;
};
TokenOptions.prototype.getRole = function () {
return this.role;
};
return TokenOptions;
}());
exports.TokenOptions = TokenOptions;
(function (TokenOptions) {
var Builder = /** @class */ (function () {
function Builder() {
this.dataProp = '';
this.roleProp = OpenViduRole_1.OpenViduRole.PUBLISHER;
}
Builder.prototype.build = function () {
return new TokenOptions(this.dataProp, this.roleProp);
};
Builder.prototype.data = function (data) {
this.dataProp = data;
return this;
};
Builder.prototype.role = function (role) {
this.roleProp = role;
return this;
};
return Builder;
}());
TokenOptions.Builder = Builder;
;
})(TokenOptions = exports.TokenOptions || (exports.TokenOptions = {}));
exports.TokenOptions = TokenOptions;
//# sourceMappingURL=TokenOptions.js.map //# sourceMappingURL=TokenOptions.js.map

View File

@ -1 +1 @@
{"version":3,"file":"TokenOptions.js","sourceRoot":"","sources":["../src/TokenOptions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAEH,+CAA8C;AAE9C;IAEI,sBAAoB,IAAY,EAAU,IAAkB;QAAxC,SAAI,GAAJ,IAAI,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAc;IAAI,CAAC;IAEjE,8BAAO,GAAP;QACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,8BAAO,GAAP;QACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACL,mBAAC;AAAD,CAAC,AAXD,IAWC;AAXY,oCAAY;AAazB,WAAiB,YAAY;IACzB;QAAA;YAEY,aAAQ,GAAW,EAAE,CAAC;YACtB,aAAQ,GAAiB,2BAAY,CAAC,SAAS,CAAC;QAgB5D,CAAC;QAdG,uBAAK,GAAL;YACI,MAAM,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,sBAAI,GAAJ,UAAK,IAAY;YACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;QAChB,CAAC;QAED,sBAAI,GAAJ,UAAK,IAAkB;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;QAChB,CAAC;QAEL,cAAC;IAAD,CAAC,AAnBD,IAmBC;IAnBY,oBAAO,UAmBnB,CAAA;IAAA,CAAC;AACN,CAAC,EArBgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAqB5B;AAlCY,oCAAY"} {"version":3,"file":"TokenOptions.js","sourceRoot":"","sources":["../src/TokenOptions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG"}

View File

@ -6,11 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
__export(require("./OpenVidu")); __export(require("./OpenVidu"));
__export(require("./OpenViduRole")); __export(require("./OpenViduRole"));
__export(require("./Session")); __export(require("./Session"));
__export(require("./SessionProperties"));
__export(require("./TokenOptions"));
__export(require("./MediaMode")); __export(require("./MediaMode"));
__export(require("./RecordingLayout")); __export(require("./RecordingLayout"));
__export(require("./RecordingMode")); __export(require("./RecordingMode"));
__export(require("./Recording")); __export(require("./Recording"));
__export(require("./RecordingProperties"));
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,gCAA2B;AAC3B,oCAA+B;AAC/B,+BAA0B;AAC1B,yCAAoC;AACpC,oCAA+B;AAC/B,iCAA4B;AAC5B,uCAAkC;AAClC,qCAAgC;AAChC,iCAA4B;AAC5B,2CAAsC"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,gCAA2B;AAC3B,oCAA+B;AAC/B,+BAA0B;AAG1B,iCAA4B;AAC5B,uCAAkC;AAClC,qCAAgC;AAChC,iCAA4B"}

View File

@ -15,14 +15,14 @@
* *
*/ */
import { Session } from "./Session"; import { Session } from './Session';
import { SessionProperties } from "./SessionProperties"; import { SessionProperties } from './SessionProperties';
import { Recording } from "./Recording"; import { Recording } from './Recording';
import { RecordingProperties } from "./RecordingProperties"; import { RecordingLayout } from './RecordingLayout';
import { RecordingLayout } from "./RecordingLayout"; import { RecordingProperties } from './RecordingProperties';
declare const Buffer; declare const Buffer;
let https = require('https'); const https = require('https');
export class OpenVidu { export class OpenVidu {
@ -57,9 +57,9 @@ export class OpenVidu {
const properties = <RecordingProperties>param2; const properties = <RecordingProperties>param2;
requestBody = JSON.stringify({ requestBody = JSON.stringify({
session: sessionId, session: sessionId,
name: properties.name(), name: !!properties.name ? properties.name : '',
recordingLayout: (!!properties.recordingLayout() ? properties.recordingLayout() : ''), recordingLayout: !!properties.recordingLayout ? properties.recordingLayout : '',
customLayout: (!!properties.customLayout() ? properties.customLayout() : '') customLayout: !!properties.customLayout ? properties.customLayout : ''
}); });
} else { } else {
requestBody = JSON.stringify({ requestBody = JSON.stringify({
@ -78,7 +78,7 @@ export class OpenVidu {
}); });
} }
let options = { const options = {
hostname: this.hostname, hostname: this.hostname,
port: this.port, port: this.port,
path: OpenVidu.API_RECORDINGS + OpenVidu.API_RECORDINGS_START, path: OpenVidu.API_RECORDINGS + OpenVidu.API_RECORDINGS_START,
@ -88,7 +88,8 @@ export class OpenVidu {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(requestBody) 'Content-Length': Buffer.byteLength(requestBody)
} }
} };
const req = https.request(options, (res) => { const req = https.request(options, (res) => {
let body = ''; let body = '';
res.on('data', (d) => { res.on('data', (d) => {
@ -118,7 +119,7 @@ export class OpenVidu {
public stopRecording(recordingId: string): Promise<Recording> { public stopRecording(recordingId: string): Promise<Recording> {
return new Promise<Recording>((resolve, reject) => { return new Promise<Recording>((resolve, reject) => {
let options = { const options = {
hostname: this.hostname, hostname: this.hostname,
port: this.port, port: this.port,
path: OpenVidu.API_RECORDINGS + OpenVidu.API_RECORDINGS_STOP + '/' + recordingId, path: OpenVidu.API_RECORDINGS + OpenVidu.API_RECORDINGS_STOP + '/' + recordingId,
@ -127,7 +128,8 @@ export class OpenVidu {
'Authorization': this.basicAuth, 'Authorization': this.basicAuth,
'Content-Type': 'application/x-www-form-urlencoded' 'Content-Type': 'application/x-www-form-urlencoded'
} }
} };
const req = https.request(options, (res) => { const req = https.request(options, (res) => {
let body = ''; let body = '';
res.on('data', (d) => { res.on('data', (d) => {
@ -148,7 +150,7 @@ export class OpenVidu {
req.on('error', (e) => { req.on('error', (e) => {
reject(new Error(e)); reject(new Error(e));
}); });
//req.write(); // req.write();
req.end(); req.end();
}); });
@ -157,7 +159,7 @@ export class OpenVidu {
public getRecording(recordingId: string): Promise<Recording> { public getRecording(recordingId: string): Promise<Recording> {
return new Promise<Recording>((resolve, reject) => { return new Promise<Recording>((resolve, reject) => {
let options = { const options = {
hostname: this.hostname, hostname: this.hostname,
port: this.port, port: this.port,
path: OpenVidu.API_RECORDINGS + '/' + recordingId, path: OpenVidu.API_RECORDINGS + '/' + recordingId,
@ -166,7 +168,8 @@ export class OpenVidu {
'Authorization': this.basicAuth, 'Authorization': this.basicAuth,
'Content-Type': 'application/x-www-form-urlencoded' 'Content-Type': 'application/x-www-form-urlencoded'
} }
} };
const req = https.request(options, (res) => { const req = https.request(options, (res) => {
let body = ''; let body = '';
res.on('data', (d) => { res.on('data', (d) => {
@ -187,7 +190,7 @@ export class OpenVidu {
req.on('error', (e) => { req.on('error', (e) => {
reject(new Error(e)); reject(new Error(e));
}); });
//req.write(); // req.write();
req.end(); req.end();
}); });
@ -196,7 +199,7 @@ export class OpenVidu {
public listRecordings(): Promise<Recording[]> { public listRecordings(): Promise<Recording[]> {
return new Promise<Recording[]>((resolve, reject) => { return new Promise<Recording[]>((resolve, reject) => {
let options = { const options = {
hostname: this.hostname, hostname: this.hostname,
port: this.port, port: this.port,
path: OpenVidu.API_RECORDINGS, path: OpenVidu.API_RECORDINGS,
@ -205,7 +208,8 @@ export class OpenVidu {
'Authorization': this.basicAuth, 'Authorization': this.basicAuth,
'Content-Type': 'application/x-www-form-urlencoded' 'Content-Type': 'application/x-www-form-urlencoded'
} }
} };
const req = https.request(options, (res) => { const req = https.request(options, (res) => {
let body = ''; let body = '';
res.on('data', (d) => { res.on('data', (d) => {
@ -215,10 +219,10 @@ export class OpenVidu {
res.on('end', () => { res.on('end', () => {
if (res.statusCode === 200) { if (res.statusCode === 200) {
// SUCCESS response from openvidu-server (JSON arrays of recordings in JSON format). Resolve list of new recordings // SUCCESS response from openvidu-server (JSON arrays of recordings in JSON format). Resolve list of new recordings
let recordingArray: Recording[] = []; const recordingArray: Recording[] = [];
let responseItems = JSON.parse(body)['items']; const responseItems = JSON.parse(body).items;
for (let i = 0; i < responseItems.length; i++) { for (const item of responseItems) {
recordingArray.push(new Recording(responseItems[i])); recordingArray.push(new Recording(item));
} }
resolve(recordingArray); resolve(recordingArray);
} else { } else {
@ -231,7 +235,7 @@ export class OpenVidu {
req.on('error', (e) => { req.on('error', (e) => {
reject(new Error(e)); reject(new Error(e));
}); });
//req.write(); // req.write();
req.end(); req.end();
}); });
@ -240,7 +244,7 @@ export class OpenVidu {
public deleteRecording(recordingId: string): Promise<Error> { public deleteRecording(recordingId: string): Promise<Error> {
return new Promise<Error>((resolve, reject) => { return new Promise<Error>((resolve, reject) => {
let options = { const options = {
hostname: this.hostname, hostname: this.hostname,
port: this.port, port: this.port,
path: OpenVidu.API_RECORDINGS + '/' + recordingId, path: OpenVidu.API_RECORDINGS + '/' + recordingId,
@ -249,7 +253,8 @@ export class OpenVidu {
'Authorization': this.basicAuth, 'Authorization': this.basicAuth,
'Content-Type': 'application/x-www-form-urlencoded' 'Content-Type': 'application/x-www-form-urlencoded'
} }
} };
const req = https.request(options, (res) => { const req = https.request(options, (res) => {
let body = ''; let body = '';
res.on('data', (d) => { res.on('data', (d) => {
@ -270,7 +275,7 @@ export class OpenVidu {
req.on('error', (e) => { req.on('error', (e) => {
reject(new Error(e)); reject(new Error(e));
}); });
//req.write(); // req.write();
req.end(); req.end();
}); });
@ -281,11 +286,11 @@ export class OpenVidu {
} }
private setHostnameAndPort(): void { private setHostnameAndPort(): void {
let urlSplitted = this.urlOpenViduServer.split(':'); const urlSplitted = this.urlOpenViduServer.split(':');
if (urlSplitted.length === 3) { // URL has format: http:// + hostname + :port if (urlSplitted.length === 3) { // URL has format: http:// + hostname + :port
this.hostname = this.urlOpenViduServer.split(':')[1].replace(/\//g, ''); this.hostname = this.urlOpenViduServer.split(':')[1].replace(/\//g, '');
this.port = parseInt(this.urlOpenViduServer.split(':')[2].replace(/\//g, '')); this.port = parseInt(this.urlOpenViduServer.split(':')[2].replace(/\//g, ''));
} else if (urlSplitted.length == 2) { // URL has format: hostname + :port } else if (urlSplitted.length === 2) { // URL has format: hostname + :port
this.hostname = this.urlOpenViduServer.split(':')[0].replace(/\//g, ''); this.hostname = this.urlOpenViduServer.split(':')[0].replace(/\//g, '');
this.port = parseInt(this.urlOpenViduServer.split(':')[1].replace(/\//g, '')); this.port = parseInt(this.urlOpenViduServer.split(':')[1].replace(/\//g, ''));
} else { } else {

View File

@ -16,7 +16,7 @@
*/ */
export enum OpenViduRole { export enum OpenViduRole {
SUBSCRIBER = 'SUBSCRIBER', // Can subscribe to published streams of other users SUBSCRIBER = 'SUBSCRIBER', // Can subscribe to published streams of other users
PUBLISHER = 'PUBLISHER', // SUBSCRIBER permissions + can subscribe to published streams of other users and publish their own streams PUBLISHER = 'PUBLISHER', // SUBSCRIBER permissions + can subscribe to published streams of other users and publish their own streams
MODERATOR = 'MODERATOR' // SUBSCRIBER + PUBLIHSER permissions + can force unpublish() and disconnect() over a third-party stream or user MODERATOR = 'MODERATOR', // SUBSCRIBER + PUBLIHSER permissions + can force unpublish() and disconnect() over a third-party stream or user
} }

View File

@ -15,22 +15,23 @@
* *
*/ */
import { RecordingProperties } from "./RecordingProperties"; import { RecordingLayout } from './RecordingLayout';
import { RecordingLayout } from "./RecordingLayout"; import { RecordingProperties } from './RecordingProperties';
export class Recording { export class Recording {
private id: string; private id: string;
private sessionId: string; private sessionId: string;
private createdAt: number; private createdAt: number;
private size: number = 0; private size = 0;
private duration: number = 0; private duration = 0;
private url: string; private url: string;
private hasaudio: boolean = true; private hasaudio = true;
private hasvideo: boolean = true; private hasvideo = true;
private status: Recording.Status; private status: Recording.Status;
private recordingProperties: RecordingProperties; private recordingProperties: RecordingProperties;
/* tslint:disable:no-string-literal */
constructor(json: JSON) { constructor(json: JSON) {
this.id = json['id']; this.id = json['id'];
this.sessionId = json['sessionId']; this.sessionId = json['sessionId'];
@ -41,8 +42,9 @@ export class Recording {
this.hasaudio = json['hasAudio']; this.hasaudio = json['hasAudio'];
this.hasvideo = json['hasVideo']; this.hasvideo = json['hasVideo'];
this.status = json['status']; this.status = json['status'];
this.recordingProperties = new RecordingProperties.Builder().name(json['name']).recordingLayout(json['layout']).build(); this.recordingProperties = { name: json['name'], recordingLayout: json['layout'] };
} }
/* tslint:enable:no-string-literal */
public getStatus(): Recording.Status { public getStatus(): Recording.Status {
return this.status; return this.status;
@ -53,11 +55,11 @@ export class Recording {
} }
public getName(): string { public getName(): string {
return this.recordingProperties.name(); return this.recordingProperties.name;
} }
public getLayout(): RecordingLayout { public getLayout(): RecordingLayout {
return this.recordingProperties.recordingLayout(); return this.recordingProperties.recordingLayout;
} }
public getSessionId(): string { public getSessionId(): string {

View File

@ -15,50 +15,10 @@
* *
*/ */
import { RecordingLayout } from "./RecordingLayout"; import { RecordingLayout } from './RecordingLayout';
export class RecordingProperties { export interface RecordingProperties {
name?: string;
constructor(private rName: string, private recordingLayoutProp: RecordingLayout, private customLayoutProp: string) { } recordingLayout?: RecordingLayout;
customLayout?: string;
name(): string {
return this.rName;
}
recordingLayout(): RecordingLayout {
return this.recordingLayoutProp;
}
customLayout(): string {
return this.customLayoutProp;
}
}
export namespace RecordingProperties {
export class Builder {
private rName: string = '';
private recordingLayoutProp: RecordingLayout;
private customLayoutProp: string;
build(): RecordingProperties {
return new RecordingProperties(this.rName, this.recordingLayoutProp, this.customLayoutProp);
}
name(name: string): Builder {
this.rName = name;
return this;
}
recordingLayout(layout: RecordingLayout): Builder {
this.recordingLayoutProp = layout;
return this;
}
customLayout(path: string): Builder {
this.customLayoutProp = path;
return this;
}
};
} }

View File

@ -15,26 +15,29 @@
* *
*/ */
import { TokenOptions } from './TokenOptions'; import { MediaMode } from './MediaMode';
import { OpenViduRole } from './OpenViduRole'; import { OpenViduRole } from './OpenViduRole';
import { RecordingLayout } from './RecordingLayout';
import { RecordingMode } from './RecordingMode';
import { SessionProperties } from './SessionProperties'; import { SessionProperties } from './SessionProperties';
import { TokenOptions } from './TokenOptions';
declare const Buffer; declare const Buffer;
declare const require; declare const require;
let https = require('https'); const https = require('https');
export class Session { export class Session {
private static readonly API_SESSIONS: string = '/api/sessions'; private static readonly API_SESSIONS = '/api/sessions';
private static readonly API_TOKENS: string = '/api/tokens'; private static readonly API_TOKENS = '/api/tokens';
private sessionId: string = ""; private sessionId = '';
private properties: SessionProperties; private properties: SessionProperties;
constructor(private hostname: string, private port: number, private basicAuth: string, properties?: SessionProperties) { constructor(private hostname: string, private port: number, private basicAuth: string, properties?: SessionProperties) {
if (properties == null) { if (properties === null) {
this.properties = new SessionProperties.Builder().build(); this.properties = {};
} else { } else {
this.properties = properties; this.properties = properties;
} }
@ -47,14 +50,14 @@ export class Session {
resolve(this.sessionId); resolve(this.sessionId);
} }
let requestBody = JSON.stringify({ const requestBody = JSON.stringify({
'mediaMode': this.properties.mediaMode(), mediaMode: !!this.properties.mediaMode ? this.properties.mediaMode : MediaMode.ROUTED,
'recordingMode': this.properties.recordingMode(), recordingMode: !!this.properties.recordingMode ? this.properties.recordingMode : RecordingMode.MANUAL,
'defaultRecordingLayout': this.properties.defaultRecordingLayout(), defaultRecordingLayout: !!this.properties.defaultRecordingLayout ? this.properties.defaultRecordingLayout : RecordingLayout.BEST_FIT,
'defaultCustomLayout': this.properties.defaultCustomLayout() defaultCustomLayout: !!this.properties.defaultCustomLayout ? this.properties.defaultCustomLayout : ''
}); });
let options = { const options = {
hostname: this.hostname, hostname: this.hostname,
port: this.port, port: this.port,
path: Session.API_SESSIONS, path: Session.API_SESSIONS,
@ -64,7 +67,8 @@ export class Session {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(requestBody) 'Content-Length': Buffer.byteLength(requestBody)
} }
} };
const req = https.request(options, (res) => { const req = https.request(options, (res) => {
let body = ''; let body = '';
res.on('data', (d) => { res.on('data', (d) => {
@ -74,7 +78,7 @@ export class Session {
res.on('end', () => { res.on('end', () => {
if (res.statusCode === 200) { if (res.statusCode === 200) {
// SUCCESS response from openvidu-server. Resolve sessionId // SUCCESS response from openvidu-server. Resolve sessionId
let parsed = JSON.parse(body); const parsed = JSON.parse(body);
this.sessionId = parsed.id; this.sessionId = parsed.id;
resolve(parsed.id); resolve(parsed.id);
} else { } else {
@ -95,23 +99,13 @@ export class Session {
public generateToken(tokenOptions?: TokenOptions): Promise<string> { public generateToken(tokenOptions?: TokenOptions): Promise<string> {
return new Promise<string>((resolve, reject) => { return new Promise<string>((resolve, reject) => {
let requestBody; const requestBody = JSON.stringify({
session: this.sessionId,
role: !!tokenOptions.role ? tokenOptions.role : OpenViduRole.PUBLISHER,
data: !!tokenOptions.data ? tokenOptions.data : ''
});
if (!!tokenOptions) { const options = {
requestBody = JSON.stringify({
'session': this.sessionId,
'role': tokenOptions.getRole(),
'data': tokenOptions.getData()
});
} else {
requestBody = JSON.stringify({
'session': this.sessionId,
'role': OpenViduRole.PUBLISHER,
'data': ''
});
}
let options = {
hostname: this.hostname, hostname: this.hostname,
port: this.port, port: this.port,
path: Session.API_TOKENS, path: Session.API_TOKENS,
@ -122,6 +116,7 @@ export class Session {
'Content-Length': Buffer.byteLength(requestBody) 'Content-Length': Buffer.byteLength(requestBody)
} }
}; };
const req = https.request(options, (res) => { const req = https.request(options, (res) => {
let body = ''; let body = '';
res.on('data', (d) => { res.on('data', (d) => {
@ -131,7 +126,7 @@ export class Session {
res.on('end', () => { res.on('end', () => {
if (res.statusCode === 200) { if (res.statusCode === 200) {
// SUCCESS response from openvidu-server. Resolve token // SUCCESS response from openvidu-server. Resolve token
let parsed = JSON.parse(body); const parsed = JSON.parse(body);
resolve(parsed.id); resolve(parsed.id);
} else { } else {
// ERROR response from openvidu-server. Resolve HTTP status // ERROR response from openvidu-server. Resolve HTTP status

View File

@ -15,61 +15,13 @@
* *
*/ */
import { MediaMode } from "./MediaMode"; import { MediaMode } from './MediaMode';
import { RecordingMode } from "./RecordingMode"; import { RecordingLayout } from './RecordingLayout';
import { RecordingLayout } from "./RecordingLayout"; import { RecordingMode } from './RecordingMode';
export class SessionProperties { export interface SessionProperties {
mediaMode?: MediaMode;
constructor(private mediaModeProp: MediaMode, private recordingModeProp: RecordingMode, private defaultRecordingLayoutProp: RecordingLayout, private defaultCustomLayoutProp: string) { } recordingMode?: RecordingMode;
defaultRecordingLayout?: RecordingLayout;
mediaMode(): string { defaultCustomLayout?: string;
return this.mediaModeProp;
}
recordingMode(): RecordingMode {
return this.recordingModeProp;
}
defaultRecordingLayout(): RecordingLayout {
return this.defaultRecordingLayoutProp;
}
defaultCustomLayout(): string {
return this.defaultCustomLayoutProp;
}
}
export namespace SessionProperties {
export class Builder {
private mediaModeProp: MediaMode = MediaMode.ROUTED;
private recordingModeProp: RecordingMode = RecordingMode.MANUAL;
private defaultRecordingLayoutProp: RecordingLayout = RecordingLayout.BEST_FIT;
private defaultCustomLayoutProp: string = '';
build(): SessionProperties {
return new SessionProperties(this.mediaModeProp, this.recordingModeProp, this.defaultRecordingLayoutProp, this.defaultCustomLayoutProp);
}
mediaMode(mediaMode: MediaMode): Builder {
this.mediaModeProp = mediaMode;
return this;
}
recordingMode(recordingMode: RecordingMode): Builder {
this.recordingModeProp = recordingMode;
return this;
}
defaultRecordingLayout(layout: RecordingLayout): Builder {
this.defaultRecordingLayoutProp = layout;
return this;
}
defaultCustomLayout(path: string): Builder {
this.defaultCustomLayoutProp = path;
return this;
}
};
} }

View File

@ -15,40 +15,9 @@
* *
*/ */
import { OpenViduRole } from "./OpenViduRole"; import { OpenViduRole } from './OpenViduRole';
export class TokenOptions { export interface TokenOptions {
data: string;
constructor(private data: string, private role: OpenViduRole) { } role: OpenViduRole;
}
getData(): string {
return this.data;
}
getRole(): OpenViduRole {
return this.role;
}
}
export namespace TokenOptions {
export class Builder {
private dataProp: string = '';
private roleProp: OpenViduRole = OpenViduRole.PUBLISHER;
build(): TokenOptions {
return new TokenOptions(this.dataProp, this.roleProp);
}
data(data: string): Builder {
this.dataProp = data;
return this;
}
role(role: OpenViduRole): Builder {
this.roleProp = role;
return this;
}
};
}