@dascompany/database 2.1.1 → 2.1.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.
@@ -23,6 +23,10 @@ export default class BindParams {
23
23
  query.bindParameter(`${parameter.name}_param${index}`, value);
24
24
  });
25
25
  }
26
+ else if (QueryParamCreator.isBetweenType(parameter.type)) {
27
+ query.bindParameter(`${parameter.name}_min`, parameter.value.min);
28
+ query.bindParameter(`${parameter.name}_max`, parameter.value.max);
29
+ }
26
30
  else {
27
31
  if (parameter.type == ParameterType.string)
28
32
  parameter.value = `%${parameter.value}%`;
@@ -3,10 +3,10 @@ import Filters from "../utils/Filters";
3
3
  import Parameters from "../utils/Parameters";
4
4
  export default class QueryOptions {
5
5
  static correctingSorting(querySortBy) {
6
- const sortBy = Parameters.correct(querySortBy, { type: ParameterType.arrayObject });
6
+ const orderBy = Parameters.correct(querySortBy, { type: ParameterType.arrayObject });
7
7
  const table = [];
8
- if (sortBy[0]) {
9
- sortBy.forEach((element) => {
8
+ if (orderBy[0]) {
9
+ orderBy.forEach((element) => {
10
10
  const key = Parameters.correct(element.key, { type: ParameterType.string, filter: Filters.databaseColumn });
11
11
  const order = Parameters.correct(element.order, { type: ParameterType.string });
12
12
  table.push({ key, order });
@@ -3,8 +3,9 @@ import ParameterType from "../types/parameters/ParameterType";
3
3
  export default class QueryParamCreator {
4
4
  static createParam(parameter: ParameterI): string;
5
5
  static isArrayType(type: ParameterType): boolean;
6
+ static isBetweenType(type: ParameterType): boolean;
6
7
  private static createArrayParam;
7
8
  static createParamValue(paramName: string, paramType: ParameterType): string;
8
- static getBaseTypeForArrayType(paramType: ParameterType): ParameterType;
9
+ static getBaseTypeForComplexType(paramType: ParameterType): ParameterType;
9
10
  private static getOperatorForType;
10
11
  }
@@ -3,6 +3,13 @@ export default class QueryParamCreator {
3
3
  static createParam(parameter) {
4
4
  if (this.isArrayType(parameter.type))
5
5
  return this.createArrayParam(parameter);
6
+ else if (this.isBetweenType(parameter.type)) {
7
+ const name = parameter.name;
8
+ const paramValueType = this.getBaseTypeForComplexType(parameter.type);
9
+ const min = this.createParamValue(`${name}_min`, paramValueType);
10
+ const max = this.createParamValue(`${name}_max`, paramValueType);
11
+ return `${name} BETWEEN ${min} AND ${max}`;
12
+ }
6
13
  else {
7
14
  const paramName = parameter.name;
8
15
  const operator = this.getOperatorForType(parameter.type);
@@ -16,12 +23,18 @@ export default class QueryParamCreator {
16
23
  else
17
24
  return false;
18
25
  }
26
+ static isBetweenType(type) {
27
+ if (type == ParameterType.betweenNumber)
28
+ return true;
29
+ else
30
+ return false;
31
+ }
19
32
  static createArrayParam(parameter) {
20
33
  const paramName = parameter.name;
21
34
  let sqlArrayParam = '(';
22
35
  let arrayParam = [];
23
36
  parameter.value.forEach((paramValue, index) => {
24
- const paramType = this.getBaseTypeForArrayType(parameter.type);
37
+ const paramType = this.getBaseTypeForComplexType(parameter.type);
25
38
  const operator = this.getOperatorForType(paramType);
26
39
  const value = this.createParamValue(`${paramName}_param${index}`, paramType);
27
40
  arrayParam.push(`${paramName} ${operator} ${value}`);
@@ -46,9 +59,9 @@ export default class QueryParamCreator {
46
59
  default: throw new Error(`Nieznany typ parametru: ${paramName} typu: ${paramType} `);
47
60
  }
48
61
  }
49
- static getBaseTypeForArrayType(paramType) {
62
+ static getBaseTypeForComplexType(paramType) {
50
63
  switch (paramType) {
51
- case ParameterType.arrayNumber:
64
+ case ParameterType.arrayNumber || ParameterType.betweenNumber:
52
65
  return ParameterType.number;
53
66
  case ParameterType.arrayString:
54
67
  return ParameterType.string;
@@ -3,7 +3,7 @@ import QueryOptionsI from '../types/QueryOptionsI';
3
3
  export default class QueryParams {
4
4
  private static where;
5
5
  private static params;
6
- private static order;
6
+ private static orderBy;
7
7
  private static limit;
8
8
  private static values;
9
9
  private static paramConnector;
@@ -3,15 +3,15 @@ import QueryParamsCreator from './QueryParamCreator';
3
3
  export default class QueryParams {
4
4
  static where = '$WHERE';
5
5
  static params = '$PARAMS';
6
- static order = '$ORDERBY';
6
+ static orderBy = '$ORDERBY';
7
7
  static limit = '$LIMIT';
8
8
  static values = '$VALUES';
9
9
  static paramConnector = 'AND';
10
10
  static createParams(queryString, options) {
11
11
  if (options.where && (queryString.includes(this.where) || queryString.includes(this.params)))
12
12
  queryString = QueryParams.createWhereParams(queryString, options.where);
13
- if (options && queryString.includes(this.order))
14
- queryString = QueryParams.createOrderParams(queryString, options.order);
13
+ if (options && queryString.includes(this.orderBy))
14
+ queryString = QueryParams.createOrderParams(queryString, options.orderBy);
15
15
  if (options && queryString.includes(this.limit))
16
16
  queryString = QueryParams.createLimitParams(queryString, options.limit);
17
17
  if (options.values && queryString.includes(this.values))
@@ -37,7 +37,7 @@ export default class QueryParams {
37
37
  values.forEach((value) => {
38
38
  let valueall;
39
39
  if (index) {
40
- const paramType = QueryParamCreator.getBaseTypeForArrayType(value.type);
40
+ const paramType = QueryParamCreator.getBaseTypeForComplexType(value.type);
41
41
  valueall = QueryParamCreator.createParamValue(`${value.name}_${index}`, paramType);
42
42
  }
43
43
  else {
@@ -63,12 +63,16 @@ export default class QueryParams {
63
63
  throw new Error(`Brak zmiennej: ${this.where} lub ${this.params} w zapytaniu sql`);
64
64
  return sqlWithParams;
65
65
  }
66
- static createOrderParams(sql, order) {
67
- if (order) {
68
- sql = sql.replaceAll(this.order, `ORDER BY ${order}`);
66
+ static createOrderParams(sql, orderBy) {
67
+ if (orderBy) {
68
+ let strToReplace = `ORDER BY `;
69
+ orderBy.forEach(item => {
70
+ strToReplace += `${item.key} ${item.order} `;
71
+ });
72
+ sql = sql.replaceAll(this.orderBy, strToReplace);
69
73
  }
70
74
  else
71
- sql = sql.replaceAll(this.order, '');
75
+ sql = sql.replaceAll(this.orderBy, '');
72
76
  return sql;
73
77
  }
74
78
  static createLimitParams(sql, resultLimitation) {
@@ -4,7 +4,7 @@ import ResultLimitationI from "./ResultLimitationI";
4
4
  import WhereOptionI from "./WhereOptionI";
5
5
  export default interface QueryOptionsI {
6
6
  where?: WhereOptionI;
7
- order?: OrderByI[];
7
+ orderBy?: OrderByI[];
8
8
  limit?: ResultLimitationI;
9
9
  values?: ParameterI[];
10
10
  }
@@ -5,12 +5,13 @@ declare enum ParameterType {
5
5
  arrayBoolean = 3,
6
6
  arrayValue = 4,
7
7
  arrayObject = 5,
8
- bigint = 6,
9
- smallint = 7,
10
- number = 8,
11
- string = 9,
12
- boolean = 10,
13
- object = 11,
14
- column = 12
8
+ betweenNumber = 6,
9
+ bigint = 7,
10
+ smallint = 8,
11
+ number = 9,
12
+ string = 10,
13
+ boolean = 11,
14
+ object = 12,
15
+ column = 13
15
16
  }
16
17
  export default ParameterType;
@@ -6,12 +6,13 @@ var ParameterType;
6
6
  ParameterType[ParameterType["arrayBoolean"] = 3] = "arrayBoolean";
7
7
  ParameterType[ParameterType["arrayValue"] = 4] = "arrayValue";
8
8
  ParameterType[ParameterType["arrayObject"] = 5] = "arrayObject";
9
- ParameterType[ParameterType["bigint"] = 6] = "bigint";
10
- ParameterType[ParameterType["smallint"] = 7] = "smallint";
11
- ParameterType[ParameterType["number"] = 8] = "number";
12
- ParameterType[ParameterType["string"] = 9] = "string";
13
- ParameterType[ParameterType["boolean"] = 10] = "boolean";
14
- ParameterType[ParameterType["object"] = 11] = "object";
15
- ParameterType[ParameterType["column"] = 12] = "column";
9
+ ParameterType[ParameterType["betweenNumber"] = 6] = "betweenNumber";
10
+ ParameterType[ParameterType["bigint"] = 7] = "bigint";
11
+ ParameterType[ParameterType["smallint"] = 8] = "smallint";
12
+ ParameterType[ParameterType["number"] = 9] = "number";
13
+ ParameterType[ParameterType["string"] = 10] = "string";
14
+ ParameterType[ParameterType["boolean"] = 11] = "boolean";
15
+ ParameterType[ParameterType["object"] = 12] = "object";
16
+ ParameterType[ParameterType["column"] = 13] = "column";
16
17
  })(ParameterType || (ParameterType = {}));
17
18
  export default ParameterType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dascompany/database",
3
- "version": "2.1.1",
3
+ "version": "2.1.3",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "vitest",