@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
39 lines • 1.92 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const setupTestsOptions_schema_1 = __importDefault(require("./../../../.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema"));
const action_utility_1 = __importDefault(require("../../../utilities/action.utility"));
const AbstractAction_1 = __importDefault(require("../../AbstractAction"));
class SetupAction extends AbstractAction_1.default {
optionsSchema = setupTestsOptions_schema_1.default;
commandAliases = ['setup.testing'];
invocationMessage = 'Setting up for testing... 🛡';
async execute(options) {
const normalizedOptions = this.validateAndNormalizeOptions(options);
const { demoNumber, skillSlug } = normalizedOptions;
const loginResponse = await this.Action('person', 'login').execute({
phone: demoNumber,
pin: demoNumber.substr(demoNumber.length - 4),
});
const registerResponse = await this.Action('skill', 'register').execute({
nameReadable: skillSlug,
nameKebab: skillSlug,
});
const err = registerResponse.errors?.[0];
const isDuplicateSlugError = err?.options?.responseErrors?.length === 1 &&
err?.options?.responseErrors?.[0]?.options?.code ===
'DUPLICATE_SLUG';
let loginAsSkillResponse = {};
if (isDuplicateSlugError) {
delete registerResponse.errors;
loginAsSkillResponse = await this.Action('skill', 'login').execute({
skillSlug,
});
}
return action_utility_1.default.mergeActionResults({}, loginResponse, registerResponse, loginAsSkillResponse);
}
}
exports.default = SetupAction;
//# sourceMappingURL=SetupAction.js.map