This repository has been archived by the owner on Nov 13, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 31
/
AuthLogoutCommandBuilder.ts
67 lines (62 loc) · 2.24 KB
/
AuthLogoutCommandBuilder.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
* This program and the accompanying materials are made available under the terms of the
* Eclipse Public License v2.0 which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-v20.html
*
* SPDX-License-Identifier: EPL-2.0
*
* Copyright Contributors to the Zowe Project.
*
*/
import { AuthCommandBuilder } from "./AuthCommandBuilder";
import { ICommandDefinition } from "../../../../cmd";
import { authLogoutCommandDesc } from "../../../../messages";
import { Constants } from "../../../../constants";
import { TextUtils } from "../../../../utilities";
/**
* Used to build auth logout command definitions.
* Used automatically if you allow the "auth" command group to be generated
*/
export class AuthLogoutCommandBuilder extends AuthCommandBuilder {
/**
* Gets the "action" that this command builder is building.
* @return {string}: The "logout" action string
*/
public getAction(): string {
return Constants.LOGOUT_ACTION;
}
/**
* Build the full command - includes action group and object command.
* @return {ICommandDefinition}: The command definition.
*/
public buildFull(): ICommandDefinition {
return this.buildAuthSegmentFromConfig();
}
/**
* Builds only the "auth" segment from the auth config.
* @return {ICommandDefinition}
*/
protected buildAuthSegmentFromConfig(): ICommandDefinition {
const authType: string = this.mConfig.serviceName;
const authCommand: ICommandDefinition = {
name: authType,
type: "command",
summary: this.mConfig.logout?.summary,
description: this.mConfig.logout?.description,
handler: this.mConfig.handler,
options: this.mConfig.logout?.options,
examples: this.mConfig.logout?.examples,
profile: {
optional: [this.mProfileType]
},
customize: {}
};
if (authCommand.summary == null) {
authCommand.summary = TextUtils.formatMessage(authLogoutCommandDesc.message, {type: authType});
}
if (authCommand.description == null) {
authCommand.description = authCommand.summary;
}
return authCommand;
}
}