ask-cli
Version:
Alexa Skills Kit (ASK) Command Line Interfaces
58 lines (57 loc) • 2.72 kB
JavaScript
;
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 ramda_1 = __importDefault(require("ramda"));
const abstract_command_1 = require("../../../abstract-command");
const json_view_1 = __importDefault(require("../../../../view/json-view"));
const messenger_1 = __importDefault(require("../../../../view/messenger"));
const option_model_json_1 = __importDefault(require("../../../option-model.json"));
const profile_helper_1 = __importDefault(require("../../../../utils/profile-helper"));
const smapi_client_1 = __importDefault(require("../../../../clients/smapi-client"));
class SearchTaskCommand extends abstract_command_1.AbstractCommand {
name() {
return "search-task";
}
description() {
return ("List the tasks summary information based on keywords or provider skillId. " +
"If both keywords and provider skillId are not specified, will list all the tasks " +
"summary information accessible by the skillId.");
}
requiredOptions() {
return ["skill-id"];
}
optionalOptions() {
return ["next-token", "max-results", "provider-skill-id", "keywords", "profile", "debug"];
}
static encodeSpaces(keywords) {
return keywords ? keywords.replace(/\s/g, "%20") : keywords;
}
async handle(cmd) {
const { skillId, providerSkillId, maxResults, nextToken, profile, debug } = cmd;
const keywords = SearchTaskCommand.encodeSpaces(cmd.keywords);
const queryParams = ramda_1.default.reject(ramda_1.default.isNil, { maxResults, nextToken });
const smapiClient = new smapi_client_1.default({
profile: profile_helper_1.default.runtimeProfile(profile),
doDebug: debug,
});
return new Promise((resolve, reject) => {
smapiClient.task.searchTask(skillId, keywords, providerSkillId, queryParams, (err, result) => {
if (err || result.statusCode >= 400) {
const error = err || json_view_1.default.toString(result.body);
messenger_1.default.getInstance().error(error);
reject(error);
}
else {
const res = json_view_1.default.toString(result.body);
messenger_1.default.getInstance().info(res);
resolve(res);
}
});
});
}
}
exports.default = SearchTaskCommand;
exports.createCommand = new SearchTaskCommand(option_model_json_1.default).createCommand();