From 86bed3c3bbe3a4ddc10dcc5cbb6f17ae0c21ba2a Mon Sep 17 00:00:00 2001 From: Jakub Sydor Date: Wed, 20 Apr 2022 15:18:46 +0200 Subject: [PATCH] fix: avoid refreshing undefined token --- .../classes/modules_assets.AssetsService.md | 23 +++++++++++-- .../cache-client/cache-client.service.ts | 34 ++++++++++++------- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/docs/api/classes/modules_assets.AssetsService.md b/docs/api/classes/modules_assets.AssetsService.md index b2b0fbc7..20642c7f 100644 --- a/docs/api/classes/modules_assets.AssetsService.md +++ b/docs/api/classes/modules_assets.AssetsService.md @@ -14,6 +14,7 @@ - [cancelAssetOffer](modules_assets.AssetsService.md#cancelassetoffer) - [getAssetById](modules_assets.AssetsService.md#getassetbyid) - [getAssetHistory](modules_assets.AssetsService.md#getassethistory) +- [getAssetOwner](modules_assets.AssetsService.md#getassetowner) - [getOfferedAssets](modules_assets.AssetsService.md#getofferedassets) - [getOwnedAssets](modules_assets.AssetsService.md#getownedassets) - [getPreviouslyOwnedAssets](modules_assets.AssetsService.md#getpreviouslyownedassets) @@ -86,7 +87,7 @@ ___ | Name | Type | Description | | :------ | :------ | :------ | -| `id` | `Object` | Asset Id | +| `id` | `Object` | Asset decentralized identifier | | `id.id` | `string` | - | #### Returns @@ -122,6 +123,24 @@ Asset[] || [] ___ +### getAssetOwner + +▸ **getAssetOwner**(`id`): `Promise`<`string`\> + +Returns owner of the given asset + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `id` | `string` | asset decentralized identifier | + +#### Returns + +`Promise`<`string`\> + +___ + ### getOfferedAssets ▸ **getOfferedAssets**(`__namedParameters?`): `Promise`<[`Asset`](../interfaces/modules_assets.Asset.md)[]\> @@ -223,7 +242,7 @@ ___ `Promise`<`string`\> -Asset DID +Asset address ___ diff --git a/src/modules/cache-client/cache-client.service.ts b/src/modules/cache-client/cache-client.service.ts index cfd76d10..3987c74a 100644 --- a/src/modules/cache-client/cache-client.service.ts +++ b/src/modules/cache-client/cache-client.service.ts @@ -63,15 +63,18 @@ export class CacheClient implements ICacheClient { */ async authenticate() { try { - const { refreshToken, token } = await this.refreshToken(); - if (!this.isBrowser) { - this.httpClient.defaults.headers.common[ - 'Authorization' - ] = `Bearer ${token}`; - } - if (await this.isAuthenticated()) { - this.refresh_token = refreshToken; - return; + const refreshedTokens = await this.refreshToken(); + + if (refreshedTokens) { + if (!this.isBrowser) { + this.httpClient.defaults.headers.common[ + 'Authorization' + ] = `Bearer ${refreshedTokens.token}`; + } + if (await this.isAuthenticated()) { + this.refresh_token = refreshedTokens.refreshToken; + return; + } } } catch { // Ignore errors @@ -384,10 +387,15 @@ export class CacheClient implements ICacheClient { return data; } - private async refreshToken(): Promise<{ - token: string; - refreshToken: string; - }> { + private async refreshToken(): Promise< + | { + token: string; + refreshToken: string; + } + | undefined + > { + if (!this.refresh_token) return undefined; + const { data } = await this.httpClient.get<{ token: string; refreshToken: string;