From 53ba1be6ffeb0482a75558b484c0ec83f384daca Mon Sep 17 00:00:00 2001 From: "ACCOUNT-01\\d650261" Date: Wed, 21 Aug 2024 09:49:56 +1000 Subject: [PATCH] Update for renew token. --- package-lock.json | 18 +++++++++++-- package.json | 3 ++- src/messaging/classes/HttpClient.ts | 14 ++-------- src/messaging/constants/Constants.ts | 1 - src/messaging/utils/config.ts | 28 -------------------- test/src/messaging/classes/Reports.spec.js | 5 +++- test/src/messaging/utils/config.spec.js | 30 +--------------------- 7 files changed, 25 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index 46f7db4..6eb648e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,17 @@ { "name": "@telstra/messaging", - "version": "3.0.1", + "version": "3.0.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@telstra/messaging", - "version": "3.0.1", + "version": "3.0.2", "license": "Apache-2.0", "dependencies": { "ajv": "^6.12.6", "axios": "^1.3.6", + "moment": "^2.30.1", "uuid": "^9.0.0" }, "devDependencies": { @@ -9640,6 +9641,14 @@ "node": ">=0.10.0" } }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -21081,6 +21090,11 @@ "is-extendable": "^1.0.1" } }, + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + }, "mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", diff --git a/package.json b/package.json index 61bcf28..411b3cc 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.2", + "version": "3.0.3", "license": "Apache-2.0", "main": "dist/index.js", "typings": "dist/index.d.ts", @@ -57,6 +57,7 @@ "dependencies": { "ajv": "^6.12.6", "axios": "^1.3.6", + "moment": "^2.30.1", "uuid": "^9.0.0" } } diff --git a/src/messaging/classes/HttpClient.ts b/src/messaging/classes/HttpClient.ts index e7c4be6..677eb5d 100644 --- a/src/messaging/classes/HttpClient.ts +++ b/src/messaging/classes/HttpClient.ts @@ -11,9 +11,7 @@ import { URLSearchParams } from 'url'; import { RequestError, AuthError } from './Errors'; import { getAuthToken, - setAuthToken, - getAuthTokenRetryCount, - setAuthTokenRetryCount, + setAuthToken } from '../utils'; declare module 'axios' { @@ -23,7 +21,6 @@ declare module 'axios' { export abstract class HttpClient { protected readonly instance: AxiosInstance; private auth: Auth; - private authRetryCount: number = 0; public constructor(public authConfig?: AuthConfigProps) { this.instance = axios.create({ @@ -123,18 +120,11 @@ export abstract class HttpClient { ); } - this.authRetryCount = await getAuthTokenRetryCount(); - // attempt to refresh an auth token if ( error.response?.status === 401 && - error.response?.config.url !== '/v2/oauth/token' && - this.authRetryCount < 3 + error.response?.config.url !== '/v2/oauth/token' ) { - // increment auth token retry count - this.authRetryCount++; - await setAuthTokenRetryCount(this.authRetryCount); - // retrieve auth credentials const authCredentials = await this.auth.getCredentials(); diff --git a/src/messaging/constants/Constants.ts b/src/messaging/constants/Constants.ts index 0be56af..21df846 100644 --- a/src/messaging/constants/Constants.ts +++ b/src/messaging/constants/Constants.ts @@ -9,7 +9,6 @@ export abstract class Constants { static readonly SHARED_CREDENTIALS: string = `${os.homedir()}/.telstra/credentials`; static readonly API_URL: string = 'https://products.api.telstra.com/'; static readonly BUCKET_AUTH_STORE: string = 'authStore'; - static readonly BUCKET_KEY_AUTH_RETRY_COUNT: string = 'tokenRetryAttempt'; static readonly BUCKET_KEY_ACCESS_TOKEN: string = 'accessToken'; static readonly BUCKET_KEY_CLIENT_CREDENTIALS: string = 'clientCredentials'; static readonly USER_AGENT: string = 'Telstra Messaging SDK/0.3.18'; diff --git a/src/messaging/utils/config.ts b/src/messaging/utils/config.ts index 934d40f..811d0c5 100644 --- a/src/messaging/utils/config.ts +++ b/src/messaging/utils/config.ts @@ -67,31 +67,3 @@ export const getAuthToken = async (): Promise => { } }; -export const setAuthTokenRetryCount = async ( - retryCount: number -): Promise => { - try { - if (!retryCount) - throw new StorageError(Constants.ERRORS.STORAGE_ERROR_SET); - await storage().set({ - bucket: Constants.BUCKET_AUTH_STORE, - key: Constants.BUCKET_KEY_AUTH_RETRY_COUNT, - data: JSON.stringify(retryCount), - }); - return true; - } catch (error) { - return false; - } -}; - -export const getAuthTokenRetryCount = async (): Promise => { - try { - const data = await storage().get({ - bucket: Constants.BUCKET_AUTH_STORE, - key: Constants.BUCKET_KEY_AUTH_RETRY_COUNT, - }); - return parseInt(JSON.parse(data)); - } catch (error) { - return 0; - } -}; diff --git a/test/src/messaging/classes/Reports.spec.js b/test/src/messaging/classes/Reports.spec.js index 310e915..430d8d2 100644 --- a/test/src/messaging/classes/Reports.spec.js +++ b/test/src/messaging/classes/Reports.spec.js @@ -3,6 +3,7 @@ const { server, rest } = require('../testServer'); const { Reports, AssertionError } = require('../../../../src/messaging/classes'); const AUTH_CONFIG = require('../credentials.json'); const { Constants } = require('../Constants'); +const moment = require('moment'); const reports = new Reports(AUTH_CONFIG); @@ -11,7 +12,9 @@ describe("Reports", () => { describe("request a messages report", () => { describe('when the client sends a valid request', () => { it("should pass", async () => { - const data = { startDate: "2024-05-01", endDate: "2024-05-10", reportCallbackUrl: "https://www.example.com", filter:"test"} + const startDate = moment().subtract(3, 'days').format('YYYY-MM-DD'); + const endDate = moment().format('YYYY-MM-DD'); + const data = { startDate, endDate, reportCallbackUrl: "https://www.example.com", filter: "test" }; await expect(reports.create(data)).resolves.toEqual(Constants.CREATE_MESSAGES_REPORT_RESPONSE); }); }); diff --git a/test/src/messaging/utils/config.spec.js b/test/src/messaging/utils/config.spec.js index a32945f..c319740 100644 --- a/test/src/messaging/utils/config.spec.js +++ b/test/src/messaging/utils/config.spec.js @@ -3,9 +3,7 @@ const { setAuthConfig, getAuthConfig, setAuthToken, - getAuthToken, - setAuthTokenRetryCount, - getAuthTokenRetryCount, + getAuthToken } = require('../../../../src/messaging/utils'); const AUTH_CONFIG = require('../credentials.json'); @@ -46,31 +44,5 @@ describe('config', () => { }); }); - describe('when getAuthTokenRetryCount is called', () => { - it('should return 0 as a number', async () => { - expect(await getAuthTokenRetryCount()).toEqual(0); - }); - }); - - describe('when setAuthTokenRetryCount is called', () => { - it('should get auth token retry count of 0 when storage not yet initialised', async () => { - expect(await getAuthTokenRetryCount()).toEqual(0); - }); - }); - - describe('when setAuthTokenRetryCount is called', () => { - it('should return true given a number', async () => { - expect(await setAuthTokenRetryCount(1)).toBeTruthy(); - }); - it('should return false given no payload', async () => { - expect(await setAuthTokenRetryCount()).toBeFalsy(); - }); - }); - - describe('when getAuthTokenRetryCount is called', () => { - it('should return 1 as a number', async () => { - expect(await getAuthTokenRetryCount()).toEqual(1); - }); - }); });