From 88d017dc18982c8a7eac2030a6d9e265c7092045 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Wed, 7 Mar 2018 11:56:04 +0100 Subject: [PATCH] Allow passing optional headers to LocalRecorder.upload methods --- .../ts/OpenViduInternal/LocalRecorder.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/openvidu-browser/ts/OpenViduInternal/LocalRecorder.ts b/openvidu-browser/ts/OpenViduInternal/LocalRecorder.ts index bc2c8ee0..9f8ab281 100644 --- a/openvidu-browser/ts/OpenViduInternal/LocalRecorder.ts +++ b/openvidu-browser/ts/OpenViduInternal/LocalRecorder.ts @@ -198,13 +198,20 @@ export class LocalRecorder { } } - uploadAsBinary(endpoint: string): Promise { + uploadAsBinary(endpoint: string, headers?: any): Promise { return new Promise((resolve, reject) => { if (this.state !== LocalRecoderState.FINISHED) { reject(Error('\'LocalRecord.uploadAsBinary()\' needs \'LocalRecord.state\' to be \'FINISHED\' (current value: \'' + this.state + '\'). Call \'LocalRecorder.stop()\' before')); } else { let http = new XMLHttpRequest(); http.open("POST", endpoint, true); + + if (typeof headers === 'object') { + for (let key of Object.keys(headers)) { + http.setRequestHeader(key, headers[key]); + } + } + http.onreadystatechange = () => { if (http.readyState === 4) { if (http.status.toString().charAt(0) === '2') { @@ -220,7 +227,7 @@ export class LocalRecorder { }); } - uploadAsMultipartfile(endpoint: string): Promise { + uploadAsMultipartfile(endpoint: string, headers?: any): Promise { return new Promise((resolve, reject) => { if (this.state !== LocalRecoderState.FINISHED) { reject(Error('\'LocalRecord.uploadAsMultipartfile()\' needs \'LocalRecord.state\' to be \'FINISHED\' (current value: \'' + this.state + '\'). Call \'LocalRecorder.stop()\' before')); @@ -228,6 +235,12 @@ export class LocalRecorder { let http = new XMLHttpRequest(); http.open("POST", endpoint, true); + if (typeof headers === 'object') { + for (let key of Object.keys(headers)) { + http.setRequestHeader(key, headers[key]); + } + } + let sendable = new FormData(); sendable.append("file", this.blob, this.id + ".webm");