Refactoring based on feedback

Signed-off-by: Andre Wanlin <awanlin@rapidrtc.com>
This commit is contained in:
Andre Wanlin
2021-10-11 15:08:53 -05:00
parent 55323faa44
commit ac7edbb437
5 changed files with 22 additions and 13 deletions
+3 -2
View File
@@ -29,12 +29,13 @@ export class AzureDevOpsApi {
projectName: string,
repoName: string,
): Promise<GitRepository>;
// Warning: (ae-forgotten-export) The symbol "PullRequestOptions" needs to be exported by the entry point index.d.ts
//
// (undocumented)
getPullRequests(
projectName: string,
repoName: string,
top: number,
status: PullRequestStatus,
options: PullRequestOptions,
): Promise<PullRequest[]>;
// (undocumented)
getRepoBuilds(
@@ -24,9 +24,8 @@ import {
import {
GitPullRequest,
GitPullRequestSearchCriteria,
PullRequestStatus,
} from 'azure-devops-node-api/interfaces/GitInterfaces';
import { PullRequest, RepoBuild } from './types';
import { PullRequest, PullRequestOptions, RepoBuild } from './types';
export class AzureDevOpsApi {
constructor(
@@ -102,8 +101,7 @@ export class AzureDevOpsApi {
async getPullRequests(
projectName: string,
repoName: string,
top: number,
status: PullRequestStatus,
options: PullRequestOptions,
) {
if (this.logger) {
this.logger.debug(
@@ -114,7 +112,7 @@ export class AzureDevOpsApi {
const gitRepository = await this.getGitRepository(projectName, repoName);
const client = await this.webApi.getGitApi();
const searchCriteria: GitPullRequestSearchCriteria = {
status: status,
status: options.status,
};
const gitPullRequests = await client.getPullRequests(
gitRepository.id as string,
@@ -122,9 +120,11 @@ export class AzureDevOpsApi {
projectName,
undefined,
undefined,
top,
options.top,
);
const linkBaseUrl = `${this.webApi.serverUrl}/${projectName}/_git/${repoName}/pullrequest`;
const linkBaseUrl = `${this.webApi.serverUrl}/${encodeURIComponent(
projectName,
)}/_git/${encodeURIComponent(repoName)}/pullrequest`;
const pullRequests: PullRequest[] = gitPullRequests.map(gitPullRequest => {
return mappedPullRequest(gitPullRequest, linkBaseUrl);
});
@@ -43,3 +43,8 @@ export type PullRequest = {
isDraft?: boolean;
link: string;
};
export type PullRequestOptions = {
top: number;
status: PullRequestStatus;
};
@@ -254,8 +254,7 @@ describe('createRouter', () => {
expect(azureDevOpsApi.getPullRequests).toHaveBeenCalledWith(
'myProject',
'myRepo',
50,
1,
{ status: 1, top: 50 },
);
expect(response.status).toEqual(200);
expect(response.body).toEqual(pullRequests);
@@ -22,6 +22,7 @@ import { Config } from '@backstage/config';
import { getPersonalAccessTokenHandler, WebApi } from 'azure-devops-node-api';
import { AzureDevOpsApi } from '../api';
import { PullRequestStatus } from 'azure-devops-node-api/interfaces/GitInterfaces';
import { PullRequestOptions } from '../api/types';
const DEFAULT_TOP: number = 10;
@@ -91,11 +92,14 @@ export async function createRouter(
const status = req.query.status
? Number(req.query.status)
: PullRequestStatus.Active;
const pullRequestOptions: PullRequestOptions = {
top: top,
status: status,
};
const gitPullRequest = await azureDevOpsApi.getPullRequests(
projectName,
repoName,
top,
status,
pullRequestOptions,
);
res.status(200).json(gitPullRequest);
});