Skip to content

Commit 86954b3

Browse files
committed
refactor: move TempIamAuthService to IamAuthService
Move TempIamAuthService inside of class using that service
1 parent 341872a commit 86954b3

File tree

1 file changed

+24
-27
lines changed

1 file changed

+24
-27
lines changed

src/credentials.ts

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -47,25 +47,6 @@ export class TokenAuthService implements IAuthService {
4747
}
4848
}
4949

50-
class TempIamAuthService extends GrpcService<IamTokenService> {
51-
constructor(iamCredentials: IIamCredentials, sslCredentials: ISslCredentials) {
52-
super(
53-
iamCredentials.iamEndpoint,
54-
'yandex.cloud.iam.v1.IamTokenService',
55-
IamTokenService,
56-
sslCredentials,
57-
);
58-
}
59-
60-
create(request: yandex.cloud.iam.v1.ICreateIamTokenRequest) {
61-
return this.api.create(request)
62-
}
63-
64-
destroy() {
65-
this.api.end()
66-
}
67-
}
68-
6950
export class IamAuthService implements IAuthService {
7051
private jwtExpirationTimeout = 3600 * 1000;
7152
private tokenExpirationTimeout = 120 * 1000;
@@ -74,7 +55,23 @@ export class IamAuthService implements IAuthService {
7455
private tokenTimestamp: DateTime|null;
7556
private tokenUpdateInProgress: Boolean = false;
7657
private readonly iamCredentials: IIamCredentials;
77-
private readonly sslCredentials: ISslCredentials
58+
private readonly sslCredentials: ISslCredentials;
59+
private readonly GrpcService = class extends GrpcService<IamTokenService> {
60+
constructor(iamCredentials: IIamCredentials, sslCredentials: ISslCredentials) {
61+
super(
62+
iamCredentials.iamEndpoint,
63+
'yandex.cloud.iam.v1.IamTokenService',
64+
IamTokenService,
65+
sslCredentials,
66+
);
67+
}
68+
69+
create(request: yandex.cloud.iam.v1.ICreateIamTokenRequest) {
70+
return this.api.create(request)
71+
}
72+
73+
destroy() { this.api.end() }
74+
}
7875

7976
constructor(iamCredentials: IIamCredentials, sslCredentials?: ISslCredentials) {
8077
this.iamCredentials = iamCredentials;
@@ -105,28 +102,28 @@ export class IamAuthService implements IAuthService {
105102
}
106103

107104
private async sendTokenRequest(): Promise<ICreateIamTokenResponse> {
108-
let tempIamAuthService = new TempIamAuthService(this.iamCredentials, this.sslCredentials)
109-
const tokenPromise = tempIamAuthService.create({jwt: this.getJwtRequest()});
105+
let runtimeIamAuthService = new this.GrpcService(this.iamCredentials, this.sslCredentials)
106+
const tokenPromise = runtimeIamAuthService.create({jwt: this.getJwtRequest()});
110107
const result = await withTimeout<ICreateIamTokenResponse>(tokenPromise, this.tokenRequestTimeout);
111-
tempIamAuthService.destroy()
108+
runtimeIamAuthService.destroy()
112109
return result
113110
}
114111

115112
private async updateToken() {
116-
this.tokenUpdateInProgress=true
113+
this.tokenUpdateInProgress = true
117114
const {iamToken} = await this.sendTokenRequest();
118115
if (iamToken) {
119116
this.token = iamToken;
120117
this.tokenTimestamp = DateTime.utc();
121-
this.tokenUpdateInProgress=false
118+
this.tokenUpdateInProgress = false
122119
} else {
123-
this.tokenUpdateInProgress=false
120+
this.tokenUpdateInProgress = false
124121
throw new Error('Received empty token from IAM!');
125122
}
126123
}
127124

128125
private async waitUntilTokenUpdated() {
129-
while(this.tokenUpdateInProgress) await sleep(1)
126+
while (this.tokenUpdateInProgress) { await sleep(1) }
130127
return
131128
}
132129

0 commit comments

Comments
 (0)