From 0a5ac46269ed78e9495ef63d9b73c12e1752c1bf Mon Sep 17 00:00:00 2001 From: Haythem Farhat Date: Tue, 17 Sep 2024 11:12:40 +0100 Subject: [PATCH] feat: add reconnection flag to login message --- packages/js/src/Modules/Verto/index.ts | 5 ++++- .../src/Modules/Verto/messages/verto/Login.ts | 4 +++- .../src/Modules/Verto/tests/messages.test.ts | 21 ++++++++++++++----- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/packages/js/src/Modules/Verto/index.ts b/packages/js/src/Modules/Verto/index.ts index f75ff8db..4b65ce84 100644 --- a/packages/js/src/Modules/Verto/index.ts +++ b/packages/js/src/Modules/Verto/index.ts @@ -10,6 +10,7 @@ import Call from './webrtc/Call'; import { TIME_CALL_INVITE } from './util/constants'; import VertoHandler from './webrtc/VertoHandler'; import { isValidOptions } from './util/helpers'; +import { getReconnectToken } from './util/reconnect'; export const VERTO_PROTOCOL = 'verto-protocol'; @@ -69,12 +70,14 @@ export default class Verto extends BrowserSession { userVariables, autoReconnect = true, } = this.options; + const msg = new Login( login, password || passwd, login_token, this.sessionid, - userVariables + userVariables, + !!getReconnectToken() ); const response = await this.execute(msg).catch(this._handleLoginError); if (response) { diff --git a/packages/js/src/Modules/Verto/messages/verto/Login.ts b/packages/js/src/Modules/Verto/messages/verto/Login.ts index 980b856a..b18a5948 100644 --- a/packages/js/src/Modules/Verto/messages/verto/Login.ts +++ b/packages/js/src/Modules/Verto/messages/verto/Login.ts @@ -9,7 +9,8 @@ class Login extends BaseRequest { passwd: string, login_token: string, sessionid: string, - userVariables: Object = {} + userVariables: Object = {}, + reconnection: boolean ) { super(); @@ -19,6 +20,7 @@ class Login extends BaseRequest { passwd, login_token, userVariables, + reconnection, loginParams: {}, 'User-Agent': { sdkVersion: pkg.version, diff --git a/packages/js/src/Modules/Verto/tests/messages.test.ts b/packages/js/src/Modules/Verto/tests/messages.test.ts index 3e28fa21..2476a2ce 100644 --- a/packages/js/src/Modules/Verto/tests/messages.test.ts +++ b/packages/js/src/Modules/Verto/tests/messages.test.ts @@ -21,10 +21,12 @@ describe('Messages', function () { 'login', 'password', 'dskbksdjbfkjsdf234y67234kjrwe98', - null! + null!, + {}, + false ).request; const res = JSON.parse( - `{"jsonrpc":"2.0","id":"${message.id}","method":"login","params":{"User-Agent": ${userAgent},"login":"login","passwd":"password","login_token": "dskbksdjbfkjsdf234y67234kjrwe98","loginParams":{},"userVariables":{}}}` + `{"jsonrpc":"2.0","id":"${message.id}","method":"login","params":{"User-Agent": ${userAgent},"login":"login","passwd":"password", "reconnection": false,"login_token": "dskbksdjbfkjsdf234y67234kjrwe98","loginParams":{},"userVariables":{}}}` ); expect(message).toEqual(res); }); @@ -34,16 +36,25 @@ describe('Messages', function () { 'login', 'password', 'dskbksdjbfkjsdf234y67234kjrwe98', - '123456789' + '123456789', + {}, + false ).request; const res = JSON.parse( - `{"jsonrpc":"2.0","id":"${message.id}","method":"login","params":{"User-Agent": ${userAgent},"login":"login","passwd":"password","login_token": "dskbksdjbfkjsdf234y67234kjrwe98","sessid":"123456789","loginParams":{},"userVariables":{}}}` + `{"jsonrpc":"2.0","id":"${message.id}","method":"login","params":{"User-Agent": ${userAgent},"login":"login","passwd":"password","reconnection": false, "login_token": "dskbksdjbfkjsdf234y67234kjrwe98","sessid":"123456789","loginParams":{},"userVariables":{}}}` ); expect(message).toEqual(res); }); it('Should pass User-Agent to the backend', () => { - const req = new Login('login', 'password', 'token', 'session').request; + const req = new Login( + 'login', + 'password', + 'token', + 'session', + {}, + false + ).request; expect(req).toEqual( expect.objectContaining({ params: expect.objectContaining({