From e5d4a1f726e77f3a2914532bdd4d757a87381f5e Mon Sep 17 00:00:00 2001 From: David Tuite Date: Tue, 21 Jul 2020 16:59:25 +0100 Subject: [PATCH] Get backend base URL from config in Sentry plugin --- .../SentryPluginWidget/SentryPluginWidget.tsx | 3 ++- plugins/sentry/src/data/api-factory.ts | 7 +++++-- plugins/sentry/src/data/production-api.ts | 11 ++++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/plugins/sentry/src/components/SentryPluginWidget/SentryPluginWidget.tsx b/plugins/sentry/src/components/SentryPluginWidget/SentryPluginWidget.tsx index 0ee32f1bab..8d522df4a7 100644 --- a/plugins/sentry/src/components/SentryPluginWidget/SentryPluginWidget.tsx +++ b/plugins/sentry/src/components/SentryPluginWidget/SentryPluginWidget.tsx @@ -34,7 +34,8 @@ export const SentryPluginWidget: FC<{ const errorApi = useApi(errorApiRef); const configApi = useApi(configApiRef); const org = configApi.getString('sentry.organization'); - const api = sentryApiFactory(org); + const backendBaseUrl = configApi.getString('backend.baseUrl'); + const api = sentryApiFactory(org, backendBaseUrl); const { loading, value, error } = useAsync( () => api.fetchIssues(sentryProjectId, statsFor), diff --git a/plugins/sentry/src/data/api-factory.ts b/plugins/sentry/src/data/api-factory.ts index 32ff4bde5c..88e1148b72 100644 --- a/plugins/sentry/src/data/api-factory.ts +++ b/plugins/sentry/src/data/api-factory.ts @@ -17,9 +17,12 @@ import { SentryApi } from './sentry-api'; import { MockSentryApi } from './mock-api'; import { ProductionSentryApi } from './production-api'; -export function sentryApiFactory(organization: string): SentryApi { +export function sentryApiFactory( + organization: string, + backendBaseUrl: string, +): SentryApi { if (process.env.NODE_ENV === 'production') { - return new ProductionSentryApi(organization); + return new ProductionSentryApi(organization, backendBaseUrl); } return new MockSentryApi(); } diff --git a/plugins/sentry/src/data/production-api.ts b/plugins/sentry/src/data/production-api.ts index ce4bab5aca..5d21e80604 100644 --- a/plugins/sentry/src/data/production-api.ts +++ b/plugins/sentry/src/data/production-api.ts @@ -16,20 +16,21 @@ import { SentryIssue } from './sentry-issue'; import { SentryApi } from './sentry-api'; -const API_HOST = process.env.API_HOST || 'http://localhost:7000'; -const API_BASE_URL = `${API_HOST}/sentry/api/0/projects/`; - export class ProductionSentryApi implements SentryApi { private organization: string; + private backendBaseUrl: string; - constructor(organization: string) { + constructor(organization: string, backendBaseUrl: string) { this.organization = organization; + this.backendBaseUrl = backendBaseUrl; } async fetchIssues(project: string, statsFor: string): Promise { try { + const apiBaseUrl = `${this.backendBaseUrl}/sentry/api/0/projects/`; + const response = await fetch( - `${API_BASE_URL}/${this.organization}/${project}/issues/?statsFor=${statsFor}`, + `${apiBaseUrl}/${this.organization}/${project}/issues/?statsFor=${statsFor}`, ); if (response.status >= 400 && response.status < 600) {