/** * Ensure that required fields have been submitted for each upload. * * @param {Object[]} files * Files to validate * @param {Object} data * Request data * @returns {Error[]} * Validation errors, if any. * @memberof APIUploadHandler */ function validateAllMetadata(files, data) { const errors = [], processedFields = ['multiple'], multiple = Boolean(data.multiple); if (files.length > 1 && !multiple) errors.push(new Error(`Received more than one file, but 'multiple' flag is not set.`)); for (let file of files) { const validationResult = validateMetadata(file, data, { addSuffix: multiple }); errors.push(...validationResult.errors); processedFields.push(...validationResult.processedFields); } const remainingFields = Object.keys(data).filter(key => !processedFields.includes(key)); if (remainingFields.length > 0) errors.push(new Error(`Unknown parameter(s): ${remainingFields.join(', ')}`)); return errors; }
if (data.errors) { var clientErrors = data.errors.map(function (e) { return e.description + ' (code: ' + e.code + (e.parameter ? ', parameter: ' + e.parameter : '') + ')'; }); error = new Error('api error(s): ' + clientErrors.join(', ')); error.statusCode = response.statusCode; error.errors = data.errors; data = null;