不要怂,就是干,撸起袖子干!

Commit 9b204af6 by Muhammad AbdulMoiz Committed by Sushant

try catch block added for formatting parameters process (#6999)

* try catch block added for formatting parameters process

* new line space added before braces

* query function processing wrapped to Promise.try

* processQuery method removed from var

* binding context changed to arrow function

* promise.try chaining added

* extra Promise.resolve removed code refactored

* space added

* test cases for 'query' method updated with respect to new rejection structure instead of throwing error

* it block messages corrected

* return added and code structured

* line space added

* line space added

* code style fixed
1 parent cc09a3c7
...@@ -455,12 +455,11 @@ class Sequelize { ...@@ -455,12 +455,11 @@ class Sequelize {
* *
* @see {@link Model#build} for more information about instance option. * @see {@link Model#build} for more information about instance option.
*/ */
query(sql, options) { query(sql, options) {
if (arguments.length > 2) { let bindParameters;
// TODO: Remove this note in the next major version (4.0)
throw new Error('Sequelize.query was refactored to only use the parameters `sql` and `options`. Please read the changelog about BC.');
}
return Promise.try(() => {
options = _.assign({}, this.options.query, options); options = _.assign({}, this.options.query, options);
if (options.instance && !options.model) { if (options.instance && !options.model) {
...@@ -477,7 +476,6 @@ class Sequelize { ...@@ -477,7 +476,6 @@ class Sequelize {
if (options.replacements !== undefined) { if (options.replacements !== undefined) {
throw new Error('Both `sql.values` and `options.replacements` cannot be set at the same time'); throw new Error('Both `sql.values` and `options.replacements` cannot be set at the same time');
} }
options.replacements = sql.values; options.replacements = sql.values;
} }
...@@ -485,7 +483,6 @@ class Sequelize { ...@@ -485,7 +483,6 @@ class Sequelize {
if (options.bind !== undefined) { if (options.bind !== undefined) {
throw new Error('Both `sql.bind` and `options.bind` cannot be set at the same time'); throw new Error('Both `sql.bind` and `options.bind` cannot be set at the same time');
} }
options.bind = sql.bind; options.bind = sql.bind;
} }
...@@ -503,15 +500,15 @@ class Sequelize { ...@@ -503,15 +500,15 @@ class Sequelize {
if (options.replacements && options.bind) { if (options.replacements && options.bind) {
throw new Error('Both `replacements` and `bind` cannot be set at the same time'); throw new Error('Both `replacements` and `bind` cannot be set at the same time');
} }
if (options.replacements) { if (options.replacements) {
if (Array.isArray(options.replacements)) { if (Array.isArray(options.replacements)) {
sql = Utils.format([sql].concat(options.replacements), this.options.dialect); sql = Utils.format([sql].concat(options.replacements), this.options.dialect);
} } else {
else {
sql = Utils.formatNamedParameters(sql, options.replacements, this.options.dialect); sql = Utils.formatNamedParameters(sql, options.replacements, this.options.dialect);
} }
} }
let bindParameters;
if (options.bind) { if (options.bind) {
const bindSql = this.dialect.Query.formatBindParameters(sql, options.bind, this.options.dialect); const bindSql = this.dialect.Query.formatBindParameters(sql, options.bind, this.options.dialect);
sql = bindSql[0]; sql = bindSql[0];
...@@ -555,12 +552,10 @@ class Sequelize { ...@@ -555,12 +552,10 @@ class Sequelize {
//then set to DEFAULT if none is provided //then set to DEFAULT if none is provided
options.searchPath = 'DEFAULT'; options.searchPath = 'DEFAULT';
} }
return options.transaction ? options.transaction.connection : this.connectionManager.getConnection(options);
return Promise.resolve( }).then(connection => {
options.transaction ? options.transaction.connection : this.connectionManager.getConnection(options)
).then(connection => {
const query = new this.dialect.Query(connection, this, options); const query = new this.dialect.Query(connection, this, options);
return retry(() => query.run(sql, bindParameters).finally(() => { return retry(() => query.run(sql, bindParameters).finally(() => {
if (!options.transaction) { if (!options.transaction) {
return this.connectionManager.releaseConnection(connection); return this.connectionManager.releaseConnection(connection);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!