forest-cli
Version:
The Lumberjacks' toolbelt is the Forest CLI which makes easy to manage your back office application directly from the terminal.
59 lines • 4.69 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@oclif/core");
const abstract_authenticated_command_1 = __importDefault(require("../../abstract-authenticated-command"));
const user_manager_1 = __importDefault(require("../../services/user-manager"));
const with_current_project_1 = __importDefault(require("../../services/with-current-project"));
class UsersListCommand extends abstract_authenticated_command_1.default {
constructor(argv, config, plan) {
super(argv, config, plan);
const { assertPresent, env, usersRenderer } = this.context;
assertPresent({ env, usersRenderer });
this.env = env;
this.usersRenderer = usersRenderer;
}
async runAuthenticated() {
const { flags } = await this.parse(UsersListCommand);
const config = await (0, with_current_project_1.default)({ ...this.env, projectId: flags.projectId });
try {
const users = await new user_manager_1.default(config).listForProject();
this.usersRenderer.render(users, { ...config, format: flags.format });
}
catch (error) {
// 401/403 keep flowing to the authenticated-command handler.
const { response, status } = error;
if (response && status !== 401 && status !== 403 && response.text) {
let detail;
try {
detail = JSON.parse(response.text)?.errors?.[0]?.detail;
}
catch {
// Non-JSON error body: fall through and rethrow the original error.
}
if (detail) {
this.logger.error(detail);
this.exit(1);
}
}
throw error;
}
}
}
exports.default = UsersListCommand;
UsersListCommand.description = 'List all users of a project.';
UsersListCommand.flags = {
projectId: core_1.Flags.integer({
char: 'p',
description: 'Forest project ID.',
}),
format: core_1.Flags.string({
char: 'f',
description: 'Output format.',
options: ['table', 'json'],
default: 'table',
}),
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91c2Vycy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esc0NBQW9DO0FBRXBDLDBHQUFnRjtBQUNoRiwrRUFBc0Q7QUFDdEQsK0ZBQXFFO0FBRXJFLE1BQXFCLGdCQUFpQixTQUFRLHdDQUE0QjtJQXNCeEUsWUFBWSxJQUFjLEVBQUUsTUFBYyxFQUFFLElBQUs7UUFDL0MsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMzRCxhQUFhLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCO1FBQ3BCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsOEJBQWtCLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXJGLElBQUk7WUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksc0JBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDdkU7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLDZEQUE2RDtZQUM3RCxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQTBELENBQUM7WUFDeEYsSUFBSSxRQUFRLElBQUksTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pFLElBQUksTUFBTSxDQUFDO2dCQUNYLElBQUk7b0JBQ0YsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztpQkFDekQ7Z0JBQUMsTUFBTTtvQkFDTixvRUFBb0U7aUJBQ3JFO2dCQUNELElBQUksTUFBTSxFQUFFO29CQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNkO2FBQ0Y7WUFFRCxNQUFNLEtBQUssQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7QUF2REgsbUNBd0RDO0FBakRpQiw0QkFBVyxHQUFHLDhCQUE4QixDQUFDO0FBRTdDLHNCQUFLLEdBQUc7SUFDdEIsU0FBUyxFQUFFLFlBQUssQ0FBQyxPQUFPLENBQUM7UUFDdkIsSUFBSSxFQUFFLEdBQUc7UUFDVCxXQUFXLEVBQUUsb0JBQW9CO0tBQ2xDLENBQUM7SUFDRixNQUFNLEVBQUUsWUFBSyxDQUFDLE1BQU0sQ0FBQztRQUNuQixJQUFJLEVBQUUsR0FBRztRQUNULFdBQVcsRUFBRSxnQkFBZ0I7UUFDN0IsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUMxQixPQUFPLEVBQUUsT0FBTztLQUNqQixDQUFDO0NBQ0gsQ0FBQyJ9