UNPKG

880 BJavaScriptView Raw
1const logger = require('../logger')
2
3class LogoutAction {
4 static build (userSettings) {
5 return new LogoutAction(userSettings)
6 }
7
8 /**
9 * @param {Command} caporal
10 * @param {AppSettings} appSettings
11 * @param {UserSettings} userSettings
12 */
13 static register (caporal, appSettings, userSettings) {
14 caporal
15 .command('logout')
16 .description('Logout')
17 .action(async () => {
18 try {
19 await LogoutAction.build(userSettings).run()
20 } catch (err) {
21 // istanbul ignore next
22 logger.error(err.message)
23 process.exit(1)
24 }
25 })
26 }
27
28 /**
29 * @param {UserSettings} userSettings
30 */
31 constructor (userSettings) {
32 this.userSettings = userSettings
33 }
34
35 async run () {
36 await this.userSettings.setToken(null)
37 logger.info('Logout successful')
38 }
39}
40
41module.exports = LogoutAction