@keyshade/cli
Version:
61 lines (53 loc) • 1.6 kB
text/typescript
import BaseCommand from '@/commands/base.command'
import {
type CommandActionData,
type CommandArgument
} from '@/types/command/command.types'
import { Logger } from '@/util/logger'
import ControllerInstance from '@/util/controller-instance'
export default class GetRoleCommand extends BaseCommand {
getName(): string {
return 'get'
}
getDescription(): string {
return 'Get workspace role'
}
getArguments(): CommandArgument[] {
return [
{
name: '<Workspace Role Slug>',
description: 'Slug of the workspace role you want to fetch.'
}
]
}
canMakeHttpRequests(): boolean {
return true
}
async action({ args }: CommandActionData): Promise<void> {
const [workspaceRoleSlug] = args
const { data, error, success } =
await ControllerInstance.getInstance().workspaceRoleController.getWorkspaceRole(
{
workspaceRoleSlug
},
this.headers
)
if (success) {
Logger.info('Workspace role fetched successfully!')
Logger.info(`Workspace role: ${data.name} (${data.slug})`)
Logger.info(`Description: ${data.description || 'N/A'}`)
Logger.info(`Created at ${data.createdAt}`)
Logger.info(`Updated at ${data.updatedAt}`)
Logger.info('Authorities:')
for (const authority of data.authorities) {
Logger.info(`- ${authority}`)
}
Logger.info('Projects:')
for (const project of data.projects) {
Logger.info(`- ${project.project.name} (${project.project.slug})`)
}
} else {
this.logError(error)
}
}
}