UNPKG

kinde-cli

Version:

Kinde cli for managing your business integration, users, roles and permissions etc

240 lines (239 loc) 10.1 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = require("../lib/axios"); const context_1 = __importDefault(require("../lib/context")); const prompts_1 = require("@clack/prompts"); const picocolors_1 = __importDefault(require("picocolors")); const utils_1 = require("../utils"); const error_1 = require("../utils/error"); const command = { ID: { identifier: "Id", desc: "Permission's id", attr: "required", }, KEY: { identifier: "Key", desc: "Identifier to use in code eg blog:admin", attr: "optional", }, NAME: { identifier: "Name", desc: "Permission's name eg blog:admin", attr: "optional", }, DESCRIPTION: { identifier: "Description", desc: "Permission's description eg for managing blogs", attr: "optional", }, BODY: { identifier: "Body", desc: "Permission's details", attr: "optional", }, }; class Permission { constructor(program) { this.program = program; this.handlePermission(); } handlePermission() { let program = this.program; program .command("permission") .description(picocolors_1.default.blue("Manage User Permissions. For more information, refer to: https://kinde.com/docs/user-management/user-permissions/")) // .option( // "-c, --create <name>", // "create permission", // this.__createPermissionPrompts // ) // .option( // "-u, --update", // "update permission", // this.__updatePermissionPrompts // ) // .option("-d, --delete", "delete permission") .action((0, utils_1.errorHandler)("Auth", (str, options) => __awaiter(this, void 0, void 0, function* () { let context = context_1.default.getData(); let prompt = (yield (0, prompts_1.select)({ message: "Proceed with appropriate action", options: [ { label: "Create Permission", value: "create", }, { label: "Update Permission", value: "update", }, { label: "Delete Permission", value: "delete", }, ], })); if (prompt === "create") { let createPermissionData = yield this.__createPermissionPrompts(); let response = yield (0, axios_1.axiosRequest)({ path: `${context.normalDomain}/api/v1/permissions`, method: "POST", data: createPermissionData, headers: { Accept: "application/json", "Content-Type": "application/json", Authorization: `Bearer ${context.token.access_token}`, }, }); return (0, error_1.prettifyAxios)(response); } if (prompt === "update") { let updatePermission = yield this.__updatePermissionPrompts(); let response = yield (0, axios_1.axiosRequest)({ path: `${context.normalDomain}/api/v1/permissions/${updatePermission.permissionId}`, method: "PATCH", data: (0, utils_1.omit)("permissionId", updatePermission), headers: { Accept: "application/json", "Content-Type": "application/json", Authorization: `Bearer ${context.token.access_token}`, }, }); return (0, error_1.prettifyAxios)(response); } if (prompt === "delete") { let deletePermission = yield this.__deletePermissionPrompts(); let response = yield (0, axios_1.axiosRequest)({ path: `${context.normalDomain}/api/v1/permissions/${deletePermission.permissionId}`, method: "DELETE", headers: { Accept: "application/json", "Content-Type": "application/json", Authorization: `Bearer ${context.token.access_token}`, }, }); return (0, error_1.prettifyAxios)(response); } }))); } __createPermissionPrompts() { return __awaiter(this, void 0, void 0, function* () { let values = yield (0, prompts_1.group)({ key: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.KEY.identifier, desc: command.KEY.desc, attr: command.KEY.attr, }), defaultValue: undefined, }), name: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.NAME.identifier, desc: command.NAME.desc, attr: command.NAME.attr, }), defaultValue: undefined, }), description: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.DESCRIPTION.identifier, desc: command.DESCRIPTION.desc, attr: command.DESCRIPTION.attr, }), defaultValue: undefined, }), body: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.BODY.identifier, desc: command.BODY.desc, attr: command.BODY.attr, }), defaultValue: undefined, }), }, utils_1.onCancelCallback); return values; }); } __updatePermissionPrompts() { return __awaiter(this, void 0, void 0, function* () { let values = yield (0, prompts_1.group)({ permissionId: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.ID.identifier, desc: command.ID.desc, attr: command.ID.attr, }), validate(value) { if (!value) return "Id is required"; }, }), key: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.KEY.identifier, desc: command.KEY.desc, attr: command.KEY.attr, }), defaultValue: undefined, }), name: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.NAME.identifier, desc: command.NAME.desc, attr: command.NAME.attr, }), defaultValue: undefined, }), description: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.DESCRIPTION.identifier, desc: command.DESCRIPTION.desc, attr: command.DESCRIPTION.attr, }), defaultValue: undefined, }), body: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.BODY.identifier, desc: command.BODY.desc, attr: command.BODY.attr, }), defaultValue: undefined, }), }, utils_1.onCancelCallback); return values; }); } __deletePermissionPrompts() { return __awaiter(this, void 0, void 0, function* () { let values = yield (0, prompts_1.group)({ permissionId: () => (0, prompts_1.text)({ message: (0, utils_1.generateMessage)({ identifier: command.ID.identifier, desc: command.ID.desc, attr: command.ID.attr, }), validate(value) { if (!value) return "Id is required"; }, }), }, utils_1.onCancelCallback); return values; }); } } exports.default = Permission;