UNPKG

box-view-cli

Version:
68 lines (62 loc) 2.09 kB
var path = require('path'), debug = require('../lib/debug'), output = require('../lib/output'); module.exports = function (prog) { function createResponseHandler(done) { return function (err, res) { if (err) { output.error(res.toString()); } else { output.log(res); if (typeof done === 'function') { done(res); } } }; } function requestUpload(cmd, done) { var params = {}; if (typeof cmd.name === 'string') { params.name = cmd.name; } if (cmd.thumbnails) { params.thumbnails = cmd.thumbnails; } if (cmd.nonSvg) { params['non_svg'] = cmd.nonSvg; } if (cmd.url) { debug('upload requested with URL "%s"', cmd.url); prog.client.documents.uploadURL( cmd.url, { params: params, retry: true }, createResponseHandler(done) ); } else if (cmd.file) { cmd.file = path.resolve(cmd.file); debug('upload requested with file "%s"', cmd.file); prog.client.documents.uploadFile( cmd.file, { params: params }, createResponseHandler(done) ); } else { throw new Error('--file (-f) or --url (-u) option required'); } } return { description: 'upload a document to the View API', options: [ ['-u, --url [url]', 'specify document by URL'], ['-f, --file [file]', 'specify document by filename'], ['-n, --name [name]', 'the name of the document'], ['--thumbnails [sizes]', 'request thumbnails (format: comma-separated {width}x{height})'], ['--non-svg', 'request non-svg version'] ], actions: [ requestUpload ], // exposed here for other commands to use easily requestUpload: requestUpload }; };