MCPcopy Create free account
hub / github.com/dresende/node-orm2 / saveInstanceExtra

Function saveInstanceExtra

lib/Instance.js:345–375  ·  view source on GitHub ↗
(cb)

Source from the content-addressed store, hash-verified

343 }
344 };
345 var saveInstanceExtra = function (cb) {
346 if (opts.extrachanges.length === 0) {
347 if (cb) return cb(null, instance);
348 else return;
349 }
350
351 var data = {};
352 var conditions = {};
353
354 for (var i = 0; i < opts.extrachanges.length; i++) {
355 if (!opts.data.hasOwnProperty(opts.extrachanges[i])) continue;
356
357 if (opts.extra[opts.extrachanges[i]]) {
358 data[opts.extrachanges[i]] = opts.data[opts.extrachanges[i]];
359 if (opts.driver.propertyToValue) {
360 data[opts.extrachanges[i]] = opts.driver.propertyToValue(data[opts.extrachanges[i]], opts.extra[opts.extrachanges[i]]);
361 }
362 } else {
363 data[opts.extrachanges[i]] = opts.data[opts.extrachanges[i]];
364 }
365 }
366
367 for (i = 0; i < opts.extra_info.id.length; i++) {
368 conditions[opts.extra_info.id_prop[i]] = opts.extra_info.id[i];
369 conditions[opts.extra_info.assoc_prop[i]] = opts.data[opts.keys[i]];
370 }
371
372 opts.driver.update(opts.extra_info.table, data, conditions, function (err) {
373 return cb(err);
374 });
375 };
376 var removeInstance = function (cb) {
377 if (opts.is_new) {
378 return cb(null);

Callers 1

finishFunction · 0.85

Calls 1

cbFunction · 0.85

Tested by

no test coverage detected