docparse-api
Version:
api server for the docparse project
65 lines (59 loc) • 1.84 kB
JavaScript
var inspect = require('eyespect').inspector();
var restify = require('restify');
/**
* Prepare an upload api create request for use in the docparse-upload-process module
*/
module.exports = function(req, res, data) {
var config = data.config;
var logger = data.logger;
var create = data.create;
if (!create) {
create = require('docparse-upload-create');
}
var createData = req.params || {};
createData.files = req.files;
createData.userID = req.user._id.toString();
if (!req.files) {
logger.info('user called upload create api without attaching a file', {
type: 'api',
userID: createData.userID
});
return res.send(new restify.InternalError('files field not set'));
}
if (!req.files.upload) {
logger.info('req.files.upload is null when user called upload create ', {
type: 'api',
userID: createData.userID
});
return res.send(new restify.InternalError('files.upload field not set'));
}
if (!req.files.upload.path) {
logger.info('req.files.upload.path is null when user called upload create ', {
type: 'api',
userID: createData.userID
});
return res.send(new restify.InternalError('files.upload.path field not set'));
}
createData.filePath = req.files.upload.path;
createData.user = req.user;
createData.config = config;
createData.logger = logger;
create(createData, function (err, reply) {
if (err) {
logger.info('error in upload create api', {
type: 'api',
userID: createData.userID,
error: err
});
return res.send(new restify.InternalError(JSON.stringify(err)));
}
logger.debug('create api request processed', {
type: 'api',
userID: createData.userID
});
if (reply.toObject) {
reply = reply.toObject();
}
res.send(reply);
});
};