Append myHeaders const with Authorization Token

Signed-off-by: skgandikota <Sai.Gandikota@marks-and-spencer.com>
This commit is contained in:
skgandikota
2022-04-11 15:26:45 +05:30
parent f7154d786b
commit ee02c68c6c
2 changed files with 11 additions and 3 deletions
@@ -18,7 +18,7 @@ import {
DashboardSnapshotSummary,
NewRelicDashboardApi,
} from './NewRelicDashboardApi';
import { DiscoveryApi } from '@backstage/core-plugin-api';
import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api';
import { DashboardEntity } from '../types/DashboardEntity';
import { DashboardSnapshot } from '../types/DashboardSnapshot';
import { getDashboardParentGuidQuery } from '../queries/getDashboardParentGuidQuery';
@@ -27,21 +27,27 @@ import { ResponseError } from '@backstage/errors';
export class NewRelicDashboardClient implements NewRelicDashboardApi {
private readonly discoveryApi: DiscoveryApi;
private readonly identityApi: IdentityApi;
constructor({
discoveryApi,
identityApi,
}: {
discoveryApi: DiscoveryApi;
identityApi: IdentityApi;
baseUrl?: string;
}) {
this.discoveryApi = discoveryApi;
this.identityApi = identityApi;
}
private async callApi<T>(
query: string,
variables: { [key in string]: string | number },
): Promise<T | undefined> {
const { token } = await this.identityApi.getCredentials();
const myHeaders = new Headers();
myHeaders.append('Content-Type', 'application/json');
myHeaders.append('Authorization', `Bearer ${token}`);
const graphql = JSON.stringify({
query: query,
variables: variables,
+4 -2
View File
@@ -19,6 +19,7 @@ import {
createApiFactory,
discoveryApiRef,
createComponentExtension,
identityApiRef,
} from '@backstage/core-plugin-api';
import { newRelicDashboardApiRef, NewRelicDashboardClient } from './api';
import { rootRouteRef } from './routes';
@@ -31,10 +32,11 @@ export const newRelicDashboardPlugin = createPlugin({
apis: [
createApiFactory({
api: newRelicDashboardApiRef,
deps: { configApi: configApiRef, discoveryApi: discoveryApiRef },
factory: ({ configApi, discoveryApi }) =>
deps: { configApi: configApiRef, discoveryApi: discoveryApiRef, identityApi: identityApiRef },
factory: ({ configApi, discoveryApi, identityApi }) =>
new NewRelicDashboardClient({
discoveryApi,
identityApi,
baseUrl: configApi.getOptionalString('newrelicdashboard.baseUrl'),
}),
}),