docparse-upload-process
Version:
process upload api request for the docparse server
49 lines (44 loc) • 1.29 kB
JavaScript
var request = require('request');
var Supplier = require('docparse-supplier');
var Upload = require('docparse-upload');
var moment = require('moment');
var inspect = require('eyespect').inspector();
var fs = require('fs');
var async = require('async');
var rk = require('required-keys');
/**
* @param {Object} data should have the following fields
* @param {Upload} data.upload
* @param {User} data.user
*/
module.exports = function(data, cb) {
var keys = ['user', 'upload'];
rk.truthy(data, keys, function (err) {
if (err) { return cb(err); }
// upload exists but user is not linked in the "user_details" field.
var user = data.user;
var upload = data.upload;
var userID = user._id.toString();
var details = getUserDetailsInUpload(userID, upload);
if (!details) {
upload.user_details.push({
userID: userID,
date_uploaded: moment(),
filename: data.filename
})
}
if (upload.users.indexOf(userID) === -1) {
upload.users.push(userID);
}
upload.save(cb);
});
}
function getUserDetailsInUpload(userID, upload) {
var allDetails = upload.toObject().user_details;
for (var i in allDetails) {
var details = allDetails[i];
if (details.userID === userID) {
return details;
}
}
}