@marteye/studio-cli
Version:
CLI for MartEye Studio API
77 lines (73 loc) • 3.16 kB
JavaScript
;
var commander = require('commander');
var studio = require('../utils/studio.js');
var output = require('../utils/output.js');
function lotItemsCommand() {
const lotItems = new commander.Command('lot-items')
.description('Lot item operations');
lotItems
.command('create <market-id> <sale-id> <lot-id>')
.description('Add item to lot')
.option('--attributes <json>', 'Attributes as JSON string')
.option('--notes <json>', 'Notes as JSON array')
.option('--metadata <json>', 'Metadata as JSON string')
.action(async (marketId, saleId, lotId, options, command) => {
const globalOptions = command.optsWithGlobals ? command.optsWithGlobals() : command.parent?.parent?.opts() || {};
try {
const studio$1 = studio.createStudioInstance(globalOptions);
const itemData = {};
if (options.attributes) {
itemData.attributes = JSON.parse(options.attributes);
}
if (options.notes) {
itemData.notes = JSON.parse(options.notes);
}
if (options.metadata) {
itemData.metadata = JSON.parse(options.metadata);
}
const result = await studio$1.lotitems.create(marketId, saleId, lotId, itemData);
output.success(`Item ID: ${result.id}`);
output.output(result, globalOptions);
}
catch (err) {
output.error(err.message, err.response?.data);
process.exit(1);
}
});
lotItems
.command('update <market-id> <sale-id> <lot-id> <item-id>')
.description('Update item information')
.option('--metadata <json>', 'Metadata as JSON string')
.action(async (marketId, saleId, lotId, itemId, _options, command) => {
const globalOptions = command.optsWithGlobals ? command.optsWithGlobals() : command.parent?.parent?.opts() || {};
try {
const studio$1 = studio.createStudioInstance(globalOptions);
const updateData = {};
if (_options.metadata) {
updateData.metadata = JSON.parse(_options.metadata);
}
await studio$1.lotitems.update(marketId, saleId, lotId, itemId, updateData);
}
catch (err) {
output.error(err.message, err.response?.data);
process.exit(1);
}
});
lotItems
.command('delete <market-id> <sale-id> <lot-id> <item-id>')
.description('Remove item from lot')
.action(async (marketId, saleId, lotId, itemId, _options, command) => {
const globalOptions = command.optsWithGlobals ? command.optsWithGlobals() : command.parent?.parent?.opts() || {};
try {
const studio$1 = studio.createStudioInstance(globalOptions);
await studio$1.lotitems.delete(marketId, saleId, lotId, itemId);
}
catch (err) {
output.error(err.message, err.response?.data);
process.exit(1);
}
});
return lotItems;
}
exports.lotItemsCommand = lotItemsCommand;
//# sourceMappingURL=lot-items.js.map