@martymarron/cliff
Version:
58 lines (57 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const liff_server_api_1 = require("liff-server-api");
const command_1 = require("@oclif/command");
const message_api_request_adapter_1 = require("../adapters/message-api-request-adapter");
const dotenv = require("dotenv");
dotenv.config();
class BaseCommand extends command_1.default {
async init() {
const { flags } = this.parse(this.constructor);
this.parsedFlags = flags;
if (!flags['base-url']) {
throw new Error('args.flags\' requires containing \'base-url\' as its member.');
}
this._baseUrl = this.parsedFlags['base-url'];
if (flags['access-token']) {
this._accessToken = this.parsedFlags['access-token'];
}
else {
const client = new liff_server_api_1.MessageApiClient(this.baseUrl);
const request = new message_api_request_adapter_1.IssueAccessTokenRequestAdapter(this.parsedFlags);
const response = await client.issueAccessToken(request);
this._accessToken = response.access_token;
}
}
get baseUrl() {
return this._baseUrl;
}
get accessToken() {
return this._accessToken;
}
}
exports.default = BaseCommand;
BaseCommand.hidden = true;
BaseCommand.flags = {
'client-id': command_1.flags.string({
env: 'LINE_CLIENT_ID',
description: 'Channel ID retrieved from the developer console.'
}),
'client-secret': command_1.flags.string({
env: 'LINE_CLIENT_SECRET',
description: 'Channel secret retrieved from the developer console.'
}),
'access-token': command_1.flags.string({
env: 'CHANNEL_ACCESS_TOKEN',
}),
'base-url': command_1.flags.string({
env: 'BASE_URL',
description: 'Base URL of the LIFF Server API.'
}),
json: command_1.flags.string({
description: 'JSON string to create/update the LIFF app'
}),
'json-file': command_1.flags.string({
hidden: true
}),
};