async function fetchTenantDetails()

in src/cloudConsole/cloudConsole.ts [566:611]


async function fetchTenantDetails(session: AzureSession): Promise<{ session: AzureSession, tenantDetails: TenantDetails }> {
	// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
	const { username, clientId, tokenCache, domain } = <any>(<AzureSessionLegacy>session).credentials;
	// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
	const graphCredentials: DeviceTokenCredentials = new DeviceTokenCredentials({ username, clientId, tokenCache, domain, tokenAudience: 'graph' });

	const apiVersion: string = '1.6';
	const requestUrl: string = `https://graph.windows.net/${encodeURIComponent(session.tenantId)}/tenantDetails?api-version=${encodeURIComponent(apiVersion)}`;

	return new Promise((resolve, reject) => {
		// eslint-disable-next-line @typescript-eslint/no-misused-promises, @typescript-eslint/no-explicit-any
		graphCredentials.getToken(async (err: Error, result: any) => {
			if (err) {
				reject(err);
				return;
			}

			if (result) {
				try {
					const response: Response = await fetch(requestUrl, {
						headers: {
							// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
							Authorization: `Bearer ${result.accessToken}`,
							"x-ms-client-request-id": uuid(),
							"Content-Type": 'application/json; charset=utf-8'
						}
					});

					if (response.ok) {
						// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
						const json = await response.json();
						resolve({
							session,
							// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
							tenantDetails: json.value[0]
						});
					} else {
						reject(response.statusText)
					}
				} catch (e) {
					reject(e);
				}
			}
		});
	});
}