From cec7146643aa6f77a9bd09e895b22b9caafb3c6f Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Sun, 22 Oct 2023 12:14:01 -0500 Subject: [PATCH] Added factory Signed-off-by: Andre Wanlin --- plugins/azure-devops-backend/api-report.md | 9 +++++++- .../src/api/AzureDevOpsApi.ts | 21 ++++++++++++++----- .../src/service/router.ts | 3 ++- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/plugins/azure-devops-backend/api-report.md b/plugins/azure-devops-backend/api-report.md index 4cdccc6ffc..35faecd827 100644 --- a/plugins/azure-devops-backend/api-report.md +++ b/plugins/azure-devops-backend/api-report.md @@ -23,7 +23,14 @@ import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) export class AzureDevOpsApi { - constructor(logger: Logger, urlReader: UrlReader, config: Config); + // (undocumented) + static fromConfig( + config: Config, + options: { + logger: Logger; + urlReader: UrlReader; + }, + ): AzureDevOpsApi; // (undocumented) getAllTeams(): Promise; // (undocumented) diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts index 451d5a9a71..ffc0fd24d1 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts @@ -67,11 +67,22 @@ import { /** @public */ export class AzureDevOpsApi { - public constructor( - private readonly logger: Logger, - private readonly urlReader: UrlReader, - private readonly config: Config, - ) {} + private readonly logger: Logger; + private readonly urlReader: UrlReader; + private readonly config: Config; + + private constructor(logger: Logger, urlReader: UrlReader, config: Config) { + this.logger = logger; + this.urlReader = urlReader; + this.config = config; + } + + static fromConfig( + config: Config, + options: { logger: Logger; urlReader: UrlReader }, + ) { + return new AzureDevOpsApi(options.logger, options.urlReader, config); + } private async getWebApi(host?: string, org?: string): Promise { const validHost = host ?? this.config.getString('azureDevOps.host'); diff --git a/plugins/azure-devops-backend/src/service/router.ts b/plugins/azure-devops-backend/src/service/router.ts index 13d8a78d96..9fc762f1a7 100644 --- a/plugins/azure-devops-backend/src/service/router.ts +++ b/plugins/azure-devops-backend/src/service/router.ts @@ -45,7 +45,8 @@ export async function createRouter( const { logger, reader, config } = options; const azureDevOpsApi = - options.azureDevOpsApi || new AzureDevOpsApi(logger, reader, config); + options.azureDevOpsApi || + AzureDevOpsApi.fromConfig(config, { logger, urlReader: reader }); const pullRequestsDashboardProvider = await PullRequestsDashboardProvider.create(logger, azureDevOpsApi);