@dascompany/database 2.1.1 → 2.1.2
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/dist/query/BindParams.js +4 -0
- package/dist/query/QueryParamCreator.d.ts +2 -1
- package/dist/query/QueryParamCreator.js +16 -3
- package/dist/query/QueryParams.js +6 -2
- package/dist/types/parameters/ParameterType.d.ts +8 -7
- package/dist/types/parameters/ParameterType.js +8 -7
- package/package.json +1 -1
package/dist/query/BindParams.js
CHANGED
|
@@ -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,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
|
|
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.
|
|
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
|
|
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;
|
|
@@ -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.
|
|
40
|
+
const paramType = QueryParamCreator.getBaseTypeForComplexType(value.type);
|
|
41
41
|
valueall = QueryParamCreator.createParamValue(`${value.name}_${index}`, paramType);
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
@@ -65,7 +65,11 @@ export default class QueryParams {
|
|
|
65
65
|
}
|
|
66
66
|
static createOrderParams(sql, order) {
|
|
67
67
|
if (order) {
|
|
68
|
-
|
|
68
|
+
let strToReplace = `ORDER BY `;
|
|
69
|
+
order.forEach(item => {
|
|
70
|
+
strToReplace += `${item.key} ${item.order} `;
|
|
71
|
+
});
|
|
72
|
+
sql = sql.replaceAll(this.order, strToReplace);
|
|
69
73
|
}
|
|
70
74
|
else
|
|
71
75
|
sql = sql.replaceAll(this.order, '');
|
|
@@ -5,12 +5,13 @@ declare enum ParameterType {
|
|
|
5
5
|
arrayBoolean = 3,
|
|
6
6
|
arrayValue = 4,
|
|
7
7
|
arrayObject = 5,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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["
|
|
10
|
-
ParameterType[ParameterType["
|
|
11
|
-
ParameterType[ParameterType["
|
|
12
|
-
ParameterType[ParameterType["
|
|
13
|
-
ParameterType[ParameterType["
|
|
14
|
-
ParameterType[ParameterType["
|
|
15
|
-
ParameterType[ParameterType["
|
|
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;
|