Added factory

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
This commit is contained in:
Andre Wanlin
2023-10-22 12:14:01 -05:00
parent 38a8135171
commit cec7146643
3 changed files with 26 additions and 7 deletions
+8 -1
View File
@@ -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<Team[]>;
// (undocumented)
@@ -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<WebApi> {
const validHost = host ?? this.config.getString('azureDevOps.host');
@@ -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);