Feat: upgrade pg-promise and fix breaking changes

This commit is contained in:
csrapr 2021-02-26 18:41:53 +00:00 committed by Josh Harvey
parent c4ea21259a
commit 8cd1389de3
7 changed files with 79 additions and 83 deletions

View file

@ -220,7 +220,7 @@ function addCryptoDefaults (oldConfig, newFields) {
function modifyConfig (newFields) { function modifyConfig (newFields) {
const TransactionMode = pgp.txMode.TransactionMode const TransactionMode = pgp.txMode.TransactionMode
const isolationLevel = pgp.txMode.isolationLevel const isolationLevel = pgp.txMode.isolationLevel
const tmSRD = new TransactionMode({tiLevel: isolationLevel.serializable}) const mode = new TransactionMode({ tiLevel: isolationLevel.serializable })
function transaction (t) { function transaction (t) {
return loadRecentConfig() return loadRecentConfig()
@ -231,9 +231,7 @@ function modifyConfig (newFields) {
}) })
} }
transaction.txMode = tmSRD return db.tx({ mode }, transaction)
return db.tx(transaction)
} }
module.exports = { module.exports = {

View file

@ -5,13 +5,9 @@ const E = require('../error')
const cashInLow = require('./cash-in-low') const cashInLow = require('./cash-in-low')
module.exports = {atomic} module.exports = { atomic }
function atomic (machineTx, pi) { function atomic (machineTx, pi) {
const TransactionMode = pgp.txMode.TransactionMode
const isolationLevel = pgp.txMode.isolationLevel
const tmSRD = new TransactionMode({tiLevel: isolationLevel.serializable})
function transaction (t) { function transaction (t) {
const sql = 'select * from cash_in_txs where id=$1' const sql = 'select * from cash_in_txs where id=$1'
const sql2 = 'select * from bills where cash_in_txs_id=$1' const sql2 = 'select * from bills where cash_in_txs_id=$1'
@ -33,9 +29,6 @@ function atomic (machineTx, pi) {
}) })
}) })
} }
transaction.txMode = tmSRD
return transaction return transaction
} }

View file

@ -19,7 +19,11 @@ const MAX_PENDING = 10
module.exports = { post, monitorPending, cancel, PENDING_INTERVAL } module.exports = { post, monitorPending, cancel, PENDING_INTERVAL }
function post (machineTx, pi) { function post (machineTx, pi) {
return db.tx(cashInAtomic.atomic(machineTx, pi)) const TransactionMode = pgp.txMode.TransactionMode
const isolationLevel = pgp.txMode.isolationLevel
const mode = new TransactionMode({ tiLevel: isolationLevel.serializable })
return db.tx({ mode }, cashInAtomic.atomic(machineTx, pi))
.then(r => { .then(r => {
const updatedTx = r.tx const updatedTx = r.tx
let blacklisted = false let blacklisted = false

View file

@ -11,13 +11,9 @@ const cashOutLow = require('./cash-out-low')
const toObj = helper.toObj const toObj = helper.toObj
module.exports = {atomic} module.exports = { atomic }
function atomic (tx, pi, fromClient) { function atomic (tx, pi, fromClient) {
const TransactionMode = pgp.txMode.TransactionMode
const isolationLevel = pgp.txMode.isolationLevel
const tmSRD = new TransactionMode({tiLevel: isolationLevel.serializable})
function transaction (t) { function transaction (t) {
const sql = 'select * from cash_out_txs where id=$1' const sql = 'select * from cash_out_txs where id=$1'
@ -32,8 +28,6 @@ function atomic (tx, pi, fromClient) {
}) })
} }
transaction.txMode = tmSRD
return transaction return transaction
} }

View file

@ -37,7 +37,11 @@ function selfPost (tx, pi) {
} }
function post (tx, pi, fromClient = true) { function post (tx, pi, fromClient = true) {
return db.tx(cashOutAtomic.atomic(tx, pi, fromClient)) const TransactionMode = pgp.txMode.TransactionMode
const isolationLevel = pgp.txMode.isolationLevel
const mode = new TransactionMode({ tiLevel: isolationLevel.serializable })
return db.tx({ mode }, cashOutAtomic.atomic(tx, pi, fromClient))
.then(txVector => { .then(txVector => {
const [, newTx, justAuthorized] = txVector const [, newTx, justAuthorized] = txVector
return postProcess(txVector, justAuthorized, pi) return postProcess(txVector, justAuthorized, pi)

125
package-lock.json generated
View file

@ -3336,6 +3336,11 @@
"util": ">= 0.4.9" "util": ">= 0.4.9"
} }
}, },
"assert-options": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz",
"integrity": "sha512-7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ=="
},
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
@ -4955,9 +4960,9 @@
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
}, },
"buffer-writer": { "buffer-writer": {
"version": "1.0.1", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
"integrity": "sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg=" "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
}, },
"buffer-xor": { "buffer-xor": {
"version": "1.0.3", "version": "1.0.3",
@ -11978,11 +11983,6 @@
"tmpl": "1.0.x" "tmpl": "1.0.x"
} }
}, },
"manakin": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/manakin/-/manakin-0.5.2.tgz",
"integrity": "sha512-pfDSB7QYoVg0Io4KMV9hhPoXpj6p0uBscgtyUSKCOFZe8bqgbpStfgnKIbF/ulnr6U3ICu4OqdyxAqBgOhZwBQ=="
},
"map-age-cleaner": { "map-age-cleaner": {
"version": "0.1.3", "version": "0.1.3",
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
@ -13228,9 +13228,9 @@
} }
}, },
"packet-reader": { "packet-reader": {
"version": "0.3.1", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz", "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
"integrity": "sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc=" "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
}, },
"pandemonium": { "pandemonium": {
"version": "1.5.0", "version": "1.5.0",
@ -13377,41 +13377,42 @@
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
}, },
"pg": { "pg": {
"version": "7.4.3", "version": "8.5.1",
"resolved": "https://registry.npmjs.org/pg/-/pg-7.4.3.tgz", "resolved": "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz",
"integrity": "sha1-97b5P1NA7MJZavu5ShPj1rYJg0s=", "integrity": "sha512-9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==",
"requires": { "requires": {
"buffer-writer": "1.0.1", "buffer-writer": "2.0.0",
"packet-reader": "0.3.1", "packet-reader": "1.0.0",
"pg-connection-string": "0.1.3", "pg-connection-string": "^2.4.0",
"pg-pool": "~2.0.3", "pg-pool": "^3.2.2",
"pg-types": "~1.12.1", "pg-protocol": "^1.4.0",
"pgpass": "1.x", "pg-types": "^2.1.0",
"semver": "4.3.2" "pgpass": "1.x"
}, },
"dependencies": { "dependencies": {
"pg-types": { "pg-types": {
"version": "1.12.1", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.12.1.tgz", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
"integrity": "sha1-1kCH45A7WP+q0nnnWVxSIIoUw9I=", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
"requires": { "requires": {
"postgres-array": "~1.0.0", "pg-int8": "1.0.1",
"postgres-array": "~2.0.0",
"postgres-bytea": "~1.0.0", "postgres-bytea": "~1.0.0",
"postgres-date": "~1.0.0", "postgres-date": "~1.0.4",
"postgres-interval": "^1.1.0" "postgres-interval": "^1.1.0"
} }
}, },
"semver": { "postgres-array": {
"version": "4.3.2", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
"integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=" "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="
} }
} }
}, },
"pg-connection-string": { "pg-connection-string": {
"version": "0.1.3", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz", "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz",
"integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=" "integrity": "sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ=="
}, },
"pg-int8": { "pg-int8": {
"version": "1.0.1", "version": "1.0.1",
@ -13419,9 +13420,9 @@
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
}, },
"pg-minify": { "pg-minify": {
"version": "0.5.5", "version": "1.6.2",
"resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-0.5.5.tgz", "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz",
"integrity": "sha512-7Pf9h6nV1RFqED1hkRosePqvpPwNUUtW06TT4+lHwzesxa5gffxkShTjYH6JXV5sSSfh5+2yHOTTWEkCyCQ0Eg==" "integrity": "sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg=="
}, },
"pg-native": { "pg-native": {
"version": "3.0.0", "version": "3.0.0",
@ -13457,19 +13458,19 @@
} }
}, },
"pg-pool": { "pg-pool": {
"version": "2.0.10", "version": "3.2.2",
"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.10.tgz", "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz",
"integrity": "sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg==" "integrity": "sha512-ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA=="
}, },
"pg-promise": { "pg-promise": {
"version": "7.5.4", "version": "10.9.2",
"resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-7.5.4.tgz", "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.2.tgz",
"integrity": "sha512-wuL+13P+Ris8MEUpdatv7OH5eHEahWBNmgGHEwLd88fym/eMAjxrFV+3jRKO7bFAyDTvo3wNcmuntYwR9eJnvg==", "integrity": "sha512-ewelfzZeSPe5sbgd5ylB6edVXqoD8AH/fqZj4wPLL0242vXtkFY3JuUqt3mfvTruOqZHhoINpoXTfmC9UXbZ7A==",
"requires": { "requires": {
"manakin": "~0.5.1", "assert-options": "0.7.0",
"pg": "~7.4.1", "pg": "8.5.1",
"pg-minify": "~0.5.4", "pg-minify": "1.6.2",
"spex": "~2.0.2" "spex": "3.2.0"
} }
}, },
"pg-protocol": { "pg-protocol": {
@ -13490,11 +13491,21 @@
} }
}, },
"pgpass": { "pgpass": {
"version": "1.0.2", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz", "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
"integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=", "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
"requires": { "requires": {
"split": "^1.0.0" "split2": "^3.1.1"
},
"dependencies": {
"split2": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
"integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
"requires": {
"readable-stream": "^3.0.0"
}
}
} }
}, },
"phantomjs-prebuilt": { "phantomjs-prebuilt": {
@ -15860,17 +15871,9 @@
"dev": true "dev": true
}, },
"spex": { "spex": {
"version": "2.0.2", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/spex/-/spex-2.0.2.tgz", "resolved": "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz",
"integrity": "sha512-LU6TS3qTEpRth+FnNs/fIWEmridYN7JmaN2k1Jk31XVC4ex7+wYxiHMnKguRxS7oKjbOFl4H6seeWNDFFgkVRg==" "integrity": "sha512-9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg=="
},
"split": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
"integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
"requires": {
"through": "2"
}
}, },
"split-string": { "split-string": {
"version": "3.1.0", "version": "3.1.0",

View file

@ -66,7 +66,7 @@
"p-each-series": "^1.0.0", "p-each-series": "^1.0.0",
"p-retry": "^4.4.0", "p-retry": "^4.4.0",
"pg-native": "^3.0.0", "pg-native": "^3.0.0",
"pg-promise": "^7.4.1", "pg-promise": "^10.9.2",
"pify": "^3.0.0", "pify": "^3.0.0",
"pretty-ms": "^2.1.0", "pretty-ms": "^2.1.0",
"promise-sequential": "^1.1.1", "promise-sequential": "^1.1.1",