src/commands/image/delete.ts (39 lines of code) (raw):
import { Flags } from '@oclif/core'
import ApiCommand from '../../base-commands/api'
export default class ImageDelete extends ApiCommand {
static description = 'Delete (or un-soft-delete) an image from Grid'
static flags = {
...ApiCommand.flags,
help: Flags.help({ char: 'h' }),
'hard-delete': Flags.boolean({
char: 'x',
description: 'permanently delete image',
}),
'un-soft-delete': Flags.boolean({
char: 'u',
description: 'un-soft-delete image',
}),
}
static args = [
{ name: 'id', description: 'ID of image', required: true },
]
async run() {
const { args, flags } = await this.parse(ImageDelete)
if (flags['un-soft-delete']) {
try {
await this.unSoftDeleteImage(args.id)
this.log('Image un-soft-deleted')
} catch (error) {
this.error(error as Error)
}
}
const hardDelete = flags['hard-delete']
await this.confirmHardDelete(hardDelete)
try {
await this.deleteImage(args.id, hardDelete)
this.log('Image deleted')
} catch (error) {
this.error(error as Error)
}
}
}