leo-connector-common
Advanced tools
Comparing version 2.0.0-204-g5fcc0ac to 2.0.0-210-gd7eece1
14
base.js
@@ -45,16 +45,2 @@ 'use strict'; | ||
} | ||
// @deprecated | ||
dol(config) { | ||
console.log('`dol` is deprecated and will be removed. Please use `domainObjectBuilder` instead.'); | ||
return this.domainObjectBuilder(config); | ||
} | ||
// @deprecated | ||
DomainObjectLoader(config) { | ||
console.log('`DomainObjectLoader` is deprecated and will be removed. Please use `domainObjectBuilder` instead.'); | ||
return this.domainObjectBuilder(config); | ||
} | ||
}; |
@@ -279,3 +279,3 @@ let leo = require("leo-sdk"); | ||
} else { | ||
resolve(); | ||
resolve(session); | ||
} | ||
@@ -282,0 +282,0 @@ }); |
@@ -326,5 +326,6 @@ "use strict"; | ||
settings: event.settings, | ||
session: event.session | ||
session: event.session, | ||
...event.data | ||
}, event.data.ids).then(() => callback()).catch(callback); | ||
} | ||
}; |
@@ -6,2 +6,3 @@ "use strict"; | ||
let logger = require("leo-logger")("leo-checksum.nibbler"); | ||
const BODY_TOO_LARGE_ERROR = '{ "errorMessage" : "body size is too long"}'; | ||
@@ -111,3 +112,5 @@ module.exports = function(local, remote, opts) { | ||
end | ||
}).then(result => done(null, result), callback); | ||
}).then(result => done(null, result), (err) => done(null, { | ||
error: err | ||
})); | ||
}, (err, indivData) => { | ||
@@ -120,2 +123,6 @@ if (err) { | ||
let remoteData = indivData[1]; | ||
if (localData.error || remoteData.error) { | ||
callback(localData.error || remoteData.error); | ||
return; | ||
} | ||
let results = { | ||
@@ -230,2 +237,18 @@ missing: [], | ||
local._getIndividualChecksums = local.getIndividualChecksums; | ||
local.getIndividualChecksums = function(...args) { | ||
if (local.getIndividualChecksums.cache) { | ||
logger.log("*** Getting individual data from cache ***"); | ||
return Promise.resolve(local.getIndividualChecksums.cache); | ||
} | ||
return local._getIndividualChecksums.apply(this, args).then(data => { | ||
local.getIndividualChecksums.cache = data; | ||
logger.log("*** cache set ***"); | ||
return data; | ||
}).catch(err => { | ||
delete local.getIndividualChecksums.cache; | ||
return err; | ||
}); | ||
}; | ||
let until = opts.until; | ||
@@ -252,8 +275,33 @@ let stopReason = null; | ||
} | ||
let onErrorErr = err; | ||
if (nibble.limit <= 20000 || result.qty < 20000 || opts.skipBatch) { //It is small enough, we need to do individual checks | ||
compareIndividual(nibble.start, nibble.end, (err, dataResult) => { | ||
if (err) { | ||
done(err); | ||
if (err == BODY_TOO_LARGE_ERROR && result.shouldCleanup !== false) { | ||
result.shouldCleanup = false; | ||
let keepIds = local.getIndividualChecksums.cache.checksums.map(o => o.id); | ||
let remoteQty = result[remote.name].qty || 0; | ||
let localQty = result[local.name].qty || 0; | ||
logger.error(`${local.name} Quantity(${localQty}) to ${remote.name} Quantity(${remoteQty}) is too high. Cleaning up ${remote.name} system.`); | ||
result.extraCount = remoteQty - localQty; | ||
// Clean up | ||
remote.delete({ | ||
start: nibble.start, | ||
end: nibble.end, | ||
not_ids: keepIds | ||
}).then(() => { | ||
nibblerOpts.onError(onErrorErr, result, nibble, done); | ||
}).catch((e) => { | ||
logger.error(`${remote.name} delete err`, e); | ||
done(err); | ||
}); | ||
} else { | ||
done(err); | ||
} | ||
return; | ||
} | ||
// request was successful so clear out any cache data | ||
delete local.getIndividualChecksums.cache; | ||
//Submit them to be resent | ||
@@ -272,3 +320,3 @@ if (result.qty === undefined) { | ||
missing: dataResult.missing.length, | ||
extra: dataResult.extra.length | ||
extra: dataResult.extra.length + (result.extraCount || 0) | ||
}); | ||
@@ -285,3 +333,3 @@ if (opts.stats) { | ||
} | ||
if (dataResult.missing.length) { | ||
if (opts.onSample && dataResult.missing.length) { | ||
opts.onSample('missing', dataResult.missing); | ||
@@ -292,3 +340,3 @@ } | ||
} | ||
if (dataResult.extra.length) { | ||
if (opts.onSample && dataResult.extra.length) { | ||
opts.onSample('extra', dataResult.extra); | ||
@@ -295,0 +343,0 @@ } |
@@ -727,3 +727,3 @@ 'use strict'; | ||
processResults(err, rows, done) { | ||
if (rows && Object.keys(rows[0]).length > 1) { | ||
if (rows && rows.length >= 1 && Object.keys(rows[0]).length > 1) { | ||
return done(err, rows); | ||
@@ -730,0 +730,0 @@ } |
{ | ||
"name": "leo-connector-common", | ||
"version": "2.0.0-204-g5fcc0ac", | ||
"version": "2.0.0-210-gd7eece1", | ||
"description": "Common package for all Leo Platform database connectors", | ||
@@ -28,8 +28,8 @@ "main": "index.js", | ||
"async": "^2.6.1", | ||
"leo-aws": "^1.4.0", | ||
"leo-logger": ">=1.0.0", | ||
"leo-sdk": "^2.2.0", | ||
"moment": "^2.22.2", | ||
"leo-aws": "^1.4.2", | ||
"leo-logger": "^1.0.1", | ||
"leo-sdk": "^2.2.4", | ||
"moment": "^2.24.0", | ||
"sqlstring": "^2.3.1" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
108463
18
3922
3
Updatedleo-aws@^1.4.2
Updatedleo-logger@^1.0.1
Updatedleo-sdk@^2.2.4
Updatedmoment@^2.24.0