UNPKG

@marteye/studio-cli

Version:

CLI for MartEye Studio API

77 lines (73 loc) 3.16 kB
'use strict'; 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