@mlagie/sql-connector 1.4.1 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlagie/sql-connector",
3
- "version": "1.4.1",
3
+ "version": "1.4.3",
4
4
  "description": "Le module sql-connector permet de gérer les connexions à une base de données MySQL, de définir des schémas de tables, et d'interagir avec les données de manière simple et efficace.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -25,6 +25,6 @@
25
25
  "dependencies": {
26
26
  "@mlagie/logger": "1.0.1",
27
27
  "glob": "^11.0.3",
28
- "mysql2": "3.14.5"
28
+ "mysql2": "3.15.1"
29
29
  }
30
30
  }
@@ -480,8 +480,6 @@ class Model {
480
480
  sql_request += ` LIMIT ${limit}`;
481
481
  }
482
482
 
483
- logs(sql_request)
484
-
485
483
  return new Promise((resolve, reject) => {
486
484
  getConnexion().promise().query(sql_request).then(([rows]) => {
487
485
  const instances = rows.map(row => new ModelInstance(this.name, row, this.schema));
@@ -503,13 +501,12 @@ class Model {
503
501
  const sql_request = `SELECT ${fields.join(", ")} FROM ${this.name} WHERE ${generateCondition(formatObject(filter))}`;
504
502
 
505
503
  return new Promise((resolve, reject) => {
506
- getConnexion().promise().query(sql_request).then((rows) => {
507
- if (rows.length == 0) return resolve(0);
508
-
509
- resolve(new ModelInstance(this.name, Object.values(rows[0])[0], this.schema));
504
+ getConnexion().promise().query(sql_request).then(([rows]) => {
505
+ if (!rows || rows.length === 0) return resolve(0);
506
+ resolve(new ModelInstance(this.name, rows[0], this.schema));
510
507
  }).catch((err) => {
511
508
  error(`Error executing query: ${err}`);
512
- return 0;
509
+ return resolve(0);
513
510
  });
514
511
  });
515
512
  }
@@ -591,7 +588,6 @@ class Model {
591
588
  */
592
589
  async delete(filter) {
593
590
  const sql_request = `DELETE FROM ${this.name} WHERE ${generateCondition(formatObject(filter))}`;
594
-
595
591
  return new Promise((resolve, reject) => {
596
592
  getConnexion().promise().query(sql_request).then((rows) => {
597
593
  if (rows[1] != undefined) return resolve(0);
@@ -19,12 +19,14 @@ module.exports = function (filter, isUpdate = false, schema = null) {
19
19
  const keys = Object.keys(filter);
20
20
  const values = Object.values(filter);
21
21
 
22
+ const filteredKeys = isUpdate ? keys.filter(key => filter[key] !== undefined) : keys;
23
+ const filteredValues = isUpdate ? filteredKeys.map(key => filter[key]) : values;
24
+
22
25
  if (!isUpdate && schema && schema.schemaDict) {
23
- const uniqueKeys = keys.filter(key => {
26
+ const uniqueKeys = filteredKeys.filter(key => {
24
27
  const field = schema.schemaDict[key];
25
28
  return field && field.unique === true;
26
29
  });
27
-
28
30
  if (uniqueKeys.length > 0) {
29
31
  return uniqueKeys.map(key => {
30
32
  const value = filter[key];
@@ -36,14 +38,14 @@ module.exports = function (filter, isUpdate = false, schema = null) {
36
38
  return `JSON_CONTAINS(${key}, '${jsonVal}')`;
37
39
  }
38
40
  if (value === null || value === "null") return `${key} IS NULL`;
39
- return `${key} = ${typeof value === "string" ? `"${value}"` : value}`;
41
+ return `${key} = ${typeof value === "string" ? `"${v}"` : value}`;
40
42
  }).join(" AND ");
41
43
  }
42
44
  }
43
45
 
44
46
  // Comportement par défaut
45
- const conditions = keys.map((key, index) => {
46
- const value = values[index];
47
+ const conditions = filteredKeys.map((key, index) => {
48
+ const value = filteredValues[index];
47
49
 
48
50
  if (Array.isArray(value)) {
49
51
  return `${key} IN (${value.map(v => `"${v}"`).join(", ")})`;
@@ -59,6 +61,5 @@ module.exports = function (filter, isUpdate = false, schema = null) {
59
61
  if ((value === null || value === "null") && isUpdate == false) return `${key} IS NULL`;
60
62
  return `${key} = ${typeof value === "string" ? `"${value}"` : value}`;
61
63
  }).join(` ${isUpdate == false ? "AND" : ","} `);
62
-
63
64
  return conditions;
64
65
  }