Skip to content

Instantly share code, notes, and snippets.

@ehlyzov
Last active April 21, 2016 12:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ehlyzov/6c30a295988ef8f7ed50e5af86b1cc56 to your computer and use it in GitHub Desktop.
Save ehlyzov/6c30a295988ef8f7ed50e5af86b1cc56 to your computer and use it in GitHub Desktop.
Example
(function (data) {
env.async.waterfall([
env.async.apply(
env.model[data.model].findOne,
env.lodash.defaults(data.findParams || {}, {
name: data.name,
value: data.payload.value
})),
function(found, next) {
if (found) {
return next(null, found, false);
} else {
var obj = new env.model[data.model](
env.lodash.defaults(data.createParams || {}, {
name: data.name,
relate_to: data.payload.relate_to,
relate_id: data.payload.relate_id,
value: data.payload.value,
payload: {
source:data.payload['@source']
}
})
)
obj.save(function(err, data) { next(err, data, true )});
}
},
function(obj, isNew, next) {
if (isNew) {
env.model[data.payload.relate_to].findById(data.relate_id, function(err, profile) {
if (data['@key']) {
profile["key_" + data.model + "s"].push(obj._id);
} else {
profile["latest_" + data.model + "s"].push(obj._id);
}
return profile.save(function(err, data) { next(err, obj) })
})
} else {
next(null, obj)
}
}], callback)
})({
model: 'fact',
name: 'fl.inn',
createParams: {
tags: ['value.INN', 'id.FL', 'use.UID']
},
payload: data
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment