From d9ac440498ab7a51320610f2c28107f1c366aeda Mon Sep 17 00:00:00 2001 From: Matt Low Date: Sun, 14 Mar 2021 12:16:59 -0600 Subject: [PATCH] Handle refresh errors by re-authenticating --- src/index.ts | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/index.ts b/src/index.ts index 6eaac46..b1a6f59 100644 --- a/src/index.ts +++ b/src/index.ts @@ -68,20 +68,24 @@ async function initRingCentralSDK() { clientId: process.env.RC_APP_KEY, clientSecret: process.env.RC_APP_SECRET, }); + + const login = () => + sdk.login({ + username: process.env.RC_LOGIN_USERNAME, + extension: process.env.RC_LOGIN_EXT, + password: process.env.RC_LOGIN_PASSWORD, + }); + const platform = sdk.platform(); - platform.on(platform.events.refreshError, (err) => { - console.error("Refresh error", err); - }); - const client = sdk.client(); - client.on(client.events.beforeRequest, (request) => { - console.log(request.url); - }); - await sdk.login({ - username: process.env.RC_LOGIN_USERNAME, - extension: process.env.RC_LOGIN_EXT, - password: process.env.RC_LOGIN_PASSWORD, + platform.on(platform.events.refreshError, async (err) => { + console.error("Refresh token error:", err); + await login(); + console.log("RingCentral re-authentication successful."); }); + + await login(); console.log("Authenticated to RingCentral."); + return sdk; }