From bd1eacf4324c21416e6d0a8341259a97d6383d7a Mon Sep 17 00:00:00 2001 From: Aiko Mastboom Date: Thu, 25 Apr 2013 17:05:56 +0200 Subject: [PATCH] duplicated "json" code --- importer.js | 51 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/importer.js b/importer.js index bcec5b7..da64ff2 100644 --- a/importer.js +++ b/importer.js @@ -187,29 +187,48 @@ module.exports = function (config, mongoInstance, shareModel) { config.errors && console.log('ERR importer.importer ensureContent', err); return callback(err); } - context.query = { _id: parent_result._id }; + function handleResult(err) { + var replacement = { + regExp: result, + value: "" + }; + return callback(err, replacement); + } - return mongoInstance.setMongoAttribute(remainder, context, function savedAttribute(err) { - if (err) { - config.errors && console.log('ERR importer.importer setMongoAttribute', err); + if (context.attribute == "json") { + var data = null; + try { + data = JSON.parse(remainder); + } catch (err) { + config.errors && console.log('ERR importer.replaceMarkers JSON.parse(remainder)', remainder, err); return callback(err); } - var documentId = 'text:' + context.collection + ':' + parent_result._id + ':' + context.attribute; - console.log('3 removing documentID', documentId); + if (data._id) { + delete data._id; + } + _.extend(parent_result, data); + return mongoInstance.setMongoContent(parent_result, context, handleResult); - return shareModel.delete(documentId, function deletedDocument(err, result) { + } else { + + context.query = { _id: parent_result._id }; + + return mongoInstance.setMongoAttribute(remainder, context, function savedAttribute(err) { if (err) { - config.errors && console.log('ERR importer.importer shareModel.delete', documentId, err); + config.errors && console.log('ERR importer.importer setMongoAttribute', err); + return callback(err); } - // remove import_file marker from source - var replacement = { - regExp: result, - value: "" - }; - return callback(null, replacement); - }) + var documentId = 'text:' + context.collection + ':' + parent_result._id + ':' + context.attribute; + console.log('3 removing documentID', documentId); - }); + return shareModel.delete(documentId, function deletedDocument(err, result) { + if (err) { + config.errors && console.log('ERR importer.importer shareModel.delete', documentId, err); + } + handleResult(null); + }) + }); + } }); }); });