Skip to content

Commit a1736cc

Browse files
committedMar 5, 2025
fix order or actions
1 parent 3b95828 commit a1736cc

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed
 

‎src/atlclients/jiraAuthenticator.ts

+7-11
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
11
import { AccessibleResource, DetailedSiteInfo, OAuthProvider, ProductJira } from './authInfo';
2+
23
import { Authenticator } from './authenticator';
34
import { CredentialManager } from './authStore';
4-
import { Container } from '../container';
55

66
export class JiraAuthentictor implements Authenticator {
77
public async getOAuthSiteDetails(
88
provider: OAuthProvider,
99
userId: string,
1010
resources: AccessibleResource[],
1111
): Promise<DetailedSiteInfo[]> {
12+
let newSites: DetailedSiteInfo[] = [];
13+
1214
const apiUri = provider === OAuthProvider.JiraCloudStaging ? 'api.stg.atlassian.com' : 'api.atlassian.com';
1315

1416
//TODO: [VSCODE-505] call serverInfo endpoint when it supports OAuth
1517
//const baseUrlString = await getJiraCloudBaseUrl(`https://${apiUri}/ex/jira/${newResource.id}/rest/2`, authInfo.access);
1618

17-
const newSites = resources.map(async (r) => {
19+
newSites = resources.map((r) => {
1820
const credentialId = CredentialManager.generateCredentialId(ProductJira.key, userId);
1921

20-
const siteDetails: DetailedSiteInfo = {
22+
return {
2123
avatarUrl: r.avatarUrl,
2224
baseApiUrl: `https://${apiUri}/ex/jira/${r.id}/rest`,
2325
baseLinkUrl: r.url,
@@ -28,16 +30,10 @@ export class JiraAuthentictor implements Authenticator {
2830
isCloud: true,
2931
userId: userId,
3032
credentialId: credentialId,
31-
hasResolutionField: false,
33+
hasResolutionField: false, // this field is populated in loginManager.ts
3234
};
33-
34-
const client = await Container.clientManager.jiraClient(siteDetails);
35-
const fields = await client.getFields();
36-
siteDetails.hasResolutionField = fields.some((f) => f.id === 'resolution');
37-
38-
return siteDetails;
3935
});
4036

41-
return await Promise.all(newSites);
37+
return newSites;
4238
}
4339
}

‎src/atlclients/loginManager.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,13 @@ export class LoginManager {
9090

9191
siteDetails.forEach(async (siteInfo) => {
9292
await this._credentialManager.saveAuthInfo(siteInfo, oauthInfo);
93+
94+
const client = await Container.clientManager.jiraClient(siteInfo);
95+
const fields = await client.getFields();
96+
siteInfo.hasResolutionField = fields.some((f) => f.id === 'resolution');
97+
9398
this._siteManager.addSites([siteInfo]);
99+
94100
authenticatedEvent(siteInfo, isOnboarding).then((e) => {
95101
this._analyticsClient.sendTrackEvent(e);
96102
});
@@ -234,10 +240,6 @@ export class LoginManager {
234240
};
235241

236242
if (site.product.key === ProductJira.key) {
237-
const client = await Container.clientManager.jiraClient(siteDetails);
238-
const fields = await client.getFields();
239-
siteDetails.hasResolutionField = fields.some((f) => f.id === 'resolution');
240-
241243
credentials.user = {
242244
displayName: json.displayName,
243245
id: userId,
@@ -254,6 +256,13 @@ export class LoginManager {
254256
}
255257

256258
await this._credentialManager.saveAuthInfo(siteDetails, credentials);
259+
260+
if (site.product.key === ProductJira.key) {
261+
const client = await Container.clientManager.jiraClient(siteDetails);
262+
const fields = await client.getFields();
263+
siteDetails.hasResolutionField = fields.some((f) => f.id === 'resolution');
264+
}
265+
257266
this._siteManager.addOrUpdateSite(siteDetails);
258267

259268
return siteDetails;

0 commit comments

Comments
 (0)
Failed to load comments.