UNPKG

ask-cli-x

Version:

Alexa Skills Kit (ASK) Command Line Interfaces

87 lines (86 loc) 3.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCommand = void 0; const path_1 = __importDefault(require("path")); const smapi_client_1 = __importDefault(require("../../../clients/smapi-client")); const abstract_command_1 = require("../../abstract-command"); const option_model_json_1 = __importDefault(require("../../option-model.json")); const resources_config_1 = __importDefault(require("../../../model/resources-config")); const constants_1 = __importDefault(require("../../../utils/constants")); const profile_helper_1 = __importDefault(require("../../../utils/profile-helper")); const json_view_1 = __importDefault(require("../../../view/json-view")); const messenger_1 = __importDefault(require("../../../view/messenger")); class GitCredentialsHelperCommand extends abstract_command_1.AbstractCommand { name() { return "git-credentials-helper"; } description() { return "gets git credentials for hosted skill repository"; } requiredOptions() { return []; } optionalOptions() { return ["profile", "debug"]; } async handle(cmd, remaining) { if (remaining && !["get", "store", "erase"].includes(remaining[0])) { const NON_GET_OPERATION_ERR = `The ask-cli git credentials helper doesn't support operation "${remaining[0]}".`; messenger_1.default.getInstance().error(NON_GET_OPERATION_ERR); throw NON_GET_OPERATION_ERR; } if (remaining && (remaining[0] === "store" || remaining[0] === "erase")) { // TODO: add "erase" enhancement to clean through the entire providerchain: oskeychain, sys, local return; } let profile; try { profile = profile_helper_1.default.runtimeProfile(cmd.profile); new resources_config_1.default(path_1.default.join(process.cwd(), constants_1.default.FILE_PATH.ASK_RESOURCES_JSON_CONFIG)); } catch (err) { messenger_1.default.getInstance().error(err); throw err; } const skillId = resources_config_1.default.getInstance().getSkillId(profile); const smapiClient = new smapi_client_1.default({ profile, doDebug: cmd.debug, }); return new Promise((resolve, reject) => { smapiClient.skill.alexaHosted.getAlexaHostedSkillMetadata(skillId, (metadataErr, metaDataResponse) => { let error = this._checkError(metadataErr, metaDataResponse); if (error) { reject(error); } const { repository } = metaDataResponse.body.alexaHosted; smapiClient.skill.alexaHosted.getGitCredentials(skillId, repository.url, (err, response) => { error = this._checkError(err, response); if (error) { reject(error); } const { repositoryCredentials } = response.body; const output = `username=${repositoryCredentials.username}\npassword=${repositoryCredentials.password}`; messenger_1.default.getInstance().info(output); resolve(); }); }); }); } _checkError(err, response) { if (err) { messenger_1.default.getInstance().error(err); return err; } if (response.statusCode >= 300) { const error = json_view_1.default.toString(response.body); messenger_1.default.getInstance().error(error); return error; } } } exports.default = GitCredentialsHelperCommand; exports.createCommand = new GitCredentialsHelperCommand(option_model_json_1.default).createCommand();