dir-uploader
Advanced tools
Comparing version 1.1.0 to 1.1.1
@@ -108,12 +108,15 @@ 'use strict'; | ||
let exportfileType = getArg('export-file-type'); | ||
const argMetaDataFileName = getArg('metadata-file-name'); | ||
let sendData = (url, resultPath, metadataFile, deleteFile, filetype) => { | ||
let sendData = (url, resultPath, metadataFile, deleteFile, filetype, resultFileFieldName) => { | ||
log.debug('url: ' + url); | ||
url = url || argUrl; | ||
resultPath = resultPath || argResultPath; | ||
metadataFile = metadataFile || argMetadataFilePath; | ||
finalDeleteFile = deleteFile || argDeleteFile; | ||
finalDeleteFile = ((deleteFile || argDeleteFile) == 'true'); | ||
log.log('debug', 'deleteFile: ' + finalDeleteFile); | ||
const finalResultFileFieldName = resultFileFieldName || 'files' | ||
let allFiles = (exportfileType === true) || (filetype === true); | ||
let filetype2 = '*'; | ||
var formData = new FormData(); | ||
if(allFiles === false) { | ||
@@ -123,24 +126,26 @@ if (exportfileType) { filetype2 = exportfileType; } | ||
} | ||
log.debug('url: ' + url); | ||
log.debug('resultPath: ' + resultPath); | ||
log.debug('finalResultFileFieldName: ' + finalResultFileFieldName) | ||
if(!validateParams(url, resultPath)) return; | ||
var formData = new FormData(); | ||
if (metadataFile) { | ||
formData.append('info', fs.createReadStream(metadataFile)); | ||
log.log('debug', colors.debug('Added metadata file ' + metadataFile)); | ||
} | ||
if (isDirSync(finalFile)) { | ||
formData.append('info', JSON.stringify({ test: 'e2e' })); | ||
if (metadataFile) { | ||
formData.append('info', fs.createReadStream(metadataFile)); | ||
log.debug('Added metadata file ' + metadataFile); | ||
} else { | ||
throw error('Metadata file is not provided'); | ||
} | ||
fs.readdirSync(resultPath).forEach(filename => { | ||
if (allFiles) { | ||
log.log('debug', colors.debug("Uploading file: %s/%s", resultPath, filename)); | ||
formData.append('files', fs.createReadStream(resultPath + '/' + filename)); | ||
log.debug("Uploading file: %s/%s", resultPath, filename); | ||
formData.append(finalResultFileFieldName, fs.createReadStream(resultPath + '/' + filename)); | ||
} else { | ||
let extension = filename.split('.').pop(); | ||
log.log('debug', 'HERE IS fileType: ' + filetype2 + ' & extension: ' + extension); | ||
log.log('debug', 'Here is fileType: ' + filetype2 + ' & extension: ' + extension); | ||
if(extension === filetype2) { | ||
log.log('debug', colors.debug("Uploading file: %s/%s", resultPath, filename)); | ||
formData.append('files', fs.createReadStream(resultPath + '/' + filename)); | ||
formData.append(finalResultFileFieldName, fs.createReadStream(resultPath + '/' + filename)); | ||
} | ||
@@ -150,12 +155,14 @@ } | ||
} else { | ||
formData.append('files', fs.createReadStream(resultPath)); | ||
formData.append(finalResultFileFieldName, fs.createReadStream(resultPath)); | ||
} | ||
log.debug('Here are formData.getHeaders(): ' + JSON.stringify(formData.getHeaders())); | ||
return fetch(url, { | ||
method: 'POST', | ||
body: formData | ||
body: formData, | ||
headers: formData.getHeaders() | ||
}) | ||
.then(result => { | ||
let dupResult = result.clone(); | ||
if (result.status === 200) { | ||
log.log('info', colors.debug('response is coming 200')); | ||
log.info(colors.debug('response is coming 200')); | ||
if (finalDeleteFile) { | ||
@@ -165,5 +172,3 @@ log.log('debug', colors.debug('Deleting uploaded files in directory ' + resultPath)); | ||
} | ||
} | ||
let dupResult = result.clone(); | ||
result.json() | ||
result.json() | ||
.then(json => { | ||
@@ -176,2 +181,7 @@ log.log('info', colors.data(JSON.stringify(json))); | ||
}); | ||
} else { | ||
log.error('Not successful result: status: ' + result.status); | ||
log.error('Here is the result object: ' + JSON.stringify(result)); | ||
} | ||
return dupResult; | ||
@@ -184,3 +194,3 @@ }) | ||
let sendMultiFolderData = (url, parentFolderPath, metadataFileName, deleteFiles, filetype) => { | ||
let sendMultiFolderData = (url, parentFolderPath, metadataFileName, deleteFiles, filetype, resultFileFieldName) => { | ||
url = url || argUrl; | ||
@@ -220,4 +230,4 @@ parentFolderPath = parentFolderPath || argResultPath; | ||
const finalFolder = parentFolderPath + '/' + value; | ||
const result = sendData(url, finalFolder, metadataFileName, | ||
true, 'xml'); | ||
const result = sendData(url, finalFolder, finalFolder + '/' + metadataFileName, | ||
true, 'xml', resultFileFieldName); | ||
resultArray.push(result); | ||
@@ -224,0 +234,0 @@ }); |
{ | ||
"name": "dir-uploader", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "An uploader module to upload all files in a directory or to upload files of a type. It sends a multipart request to the endpoint with all files attached to it", | ||
@@ -5,0 +5,0 @@ "main": "dir-uploader.js", |
@@ -65,5 +65,6 @@ # dir-uploader | ||
1. Firstly, install all the dependencies by `npm install`. | ||
2. It is easier to run when you install mocha as a global dependency `npm i -g mocha` | ||
3. Start the node test app `node tests/testapp/server.js` (tested on node v10). | ||
4. Run the tests `mocha tests/runTests.js` | ||
2. Go into testapp dir `cd tests/testapp` and run `npm install` to install testApp dependencies. | ||
3. It is easier to run when you install mocha as a global dependency `npm i -g mocha` | ||
4. Start the node test app `node tests/testapp/server.js` (tested on node v13). | ||
5. Run the tests `mocha tests/runTests.js` | ||
@@ -70,0 +71,0 @@ |
14731
214
87