@dascompany/database 0.0.2 → 0.0.4
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/SQL.json +35 -3
- package/dist/TableConnection.d.ts +8 -2
- package/dist/TableConnection.js +14 -2
- package/dist/index.d.ts +21 -1
- package/dist/index.js +16 -1
- package/dist/mappers/CompanyDataMapper.d.ts +9 -0
- package/dist/mappers/CompanyDataMapper.js +17 -0
- package/dist/mappers/DeliveryMethodsMapper.d.ts +9 -0
- package/dist/mappers/DeliveryMethodsMapper.js +17 -0
- package/dist/mappers/FileConnectionMapper.d.ts +9 -0
- package/dist/mappers/FileConnectionMapper.js +17 -0
- package/dist/mappers/PaymentMethodsMapper.d.ts +9 -0
- package/dist/mappers/PaymentMethodsMapper.js +17 -0
- package/dist/query/QueryOptions.d.ts +6 -0
- package/dist/query/QueryOptions.js +25 -0
- package/dist/reader/ClientAccountReader.d.ts +6 -0
- package/dist/reader/ClientAccountReader.js +27 -10
- package/dist/reader/CompanyDataReader.d.ts +4 -0
- package/dist/reader/CompanyDataReader.js +27 -0
- package/dist/reader/DeliveryMethodReader.d.ts +1 -0
- package/dist/reader/DeliveryMethodReader.js +5 -0
- package/dist/reader/FileConnectionsReader.d.ts +6 -0
- package/dist/reader/FileConnectionsReader.js +25 -0
- package/dist/reader/ProductReader.d.ts +2 -0
- package/dist/reader/ProductReader.js +21 -0
- package/dist/reader/StatusTypesReader.d.ts +3 -0
- package/dist/reader/StatusTypesReader.js +8 -0
- package/dist/reader/payment/PaymentMethodReader.d.ts +1 -0
- package/dist/reader/payment/PaymentMethodReader.js +5 -0
- package/dist/repo/AdminRepo.d.ts +12 -0
- package/dist/repo/AdminRepo.js +32 -0
- package/dist/repo/ClientAccountRepo.d.ts +2 -0
- package/dist/repo/ClientAccountRepo.js +10 -0
- package/dist/repo/CompanyDataRepo.d.ts +4 -0
- package/dist/repo/CompanyDataRepo.js +11 -0
- package/dist/repo/ContactDetailsRepo.d.ts +1 -0
- package/dist/repo/ContactDetailsRepo.js +8 -3
- package/dist/repo/DeliveryMethodRepo.d.ts +4 -0
- package/dist/repo/DeliveryMethodRepo.js +11 -0
- package/dist/repo/FileConnectionsRepo.d.ts +7 -0
- package/dist/repo/FileConnectionsRepo.js +25 -0
- package/dist/repo/PaymentMethodRepo.d.ts +4 -0
- package/dist/repo/PaymentMethodRepo.js +11 -0
- package/dist/repo/ProductRepo.d.ts +1 -0
- package/dist/repo/ProductRepo.js +5 -0
- package/dist/stockObjects/CompanyData.d.ts +21 -0
- package/dist/stockObjects/CompanyData.js +51 -0
- package/dist/stockObjects/DeliveryDetails.d.ts +1 -0
- package/dist/stockObjects/DeliveryDetails.js +3 -0
- package/dist/stockObjects/DeliveryMethods.d.ts +12 -0
- package/dist/stockObjects/DeliveryMethods.js +26 -0
- package/dist/stockObjects/FileConnection.d.ts +18 -0
- package/dist/stockObjects/FileConnection.js +42 -0
- package/dist/stockObjects/Order.d.ts +1 -1
- package/dist/stockObjects/PaymentDetails.d.ts +1 -1
- package/dist/stockObjects/PaymentDetails.js +1 -1
- package/dist/stockObjects/PaymentMethods.d.ts +12 -0
- package/dist/stockObjects/PaymentMethods.js +26 -0
- package/dist/stockObjects/Product.d.ts +1 -1
- package/dist/stockObjects/Product.js +5 -2
- package/dist/tables/ClientAccountsTable.d.ts +5 -2
- package/dist/tables/ClientAccountsTable.js +16 -4
- package/dist/tables/ProductsTable.d.ts +10 -0
- package/dist/tables/ProductsTable.js +72 -0
- package/dist/tables/files/FileConnectionsTable.d.ts +12 -0
- package/dist/tables/files/FileConnectionsTable.js +41 -0
- package/dist/tables/personalInformation/ContactDetailsTable.d.ts +1 -1
- package/dist/tables/settings/CompanyDataTable.d.ts +10 -0
- package/dist/tables/settings/CompanyDataTable.js +37 -0
- package/dist/tables/settings/DeliveryMethodsTable.d.ts +12 -0
- package/dist/tables/settings/DeliveryMethodsTable.js +43 -0
- package/dist/tables/settings/PaymentMethodsTable.d.ts +12 -0
- package/dist/tables/settings/PaymentMethodsTable.js +43 -0
- package/dist/types/CompanyDataI.d.ts +8 -0
- package/dist/types/CompanyDataI.js +1 -0
- package/dist/types/FileConnectionI.d.ts +6 -0
- package/dist/types/FileConnectionI.js +1 -0
- package/dist/types/FileConnectionTypeE.d.ts +4 -0
- package/dist/types/FileConnectionTypeE.js +5 -0
- package/dist/types/PersonalDataI.d.ts +1 -1
- package/dist/types/QueryOptionsI.d.ts +2 -1
- package/dist/types/parameters/ParameterType.d.ts +12 -9
- package/dist/types/parameters/ParameterType.js +12 -9
- package/dist/types/rows/CompanyDataRow.d.ts +8 -0
- package/dist/types/rows/CompanyDataRow.js +1 -0
- package/dist/types/rows/DeliveryMethodRow.d.ts +5 -0
- package/dist/types/rows/DeliveryMethodRow.js +1 -0
- package/dist/types/rows/FileConnectionRow.d.ts +6 -0
- package/dist/types/rows/FileConnectionRow.js +1 -0
- package/dist/types/rows/PaymentMethodRow.d.ts +5 -0
- package/dist/types/rows/PaymentMethodRow.js +1 -0
- package/dist/utils/Filters.d.ts +6 -0
- package/dist/utils/Filters.js +31 -0
- package/dist/utils/OrderByI.d.ts +4 -0
- package/dist/utils/OrderByI.js +1 -0
- package/dist/utils/Parameters.d.ts +5 -0
- package/dist/utils/Parameters.js +23 -0
- package/dist/utils/parameters/ParameterConversionSystem.d.ts +5 -0
- package/dist/utils/parameters/ParameterConversionSystem.js +28 -0
- package/dist/utils/parameters/ParameterFilterSystem.d.ts +4 -0
- package/dist/utils/parameters/ParameterFilterSystem.js +11 -0
- package/dist/utils/parameters/ParameterRulesSystem.d.ts +3 -0
- package/dist/utils/parameters/ParameterRulesSystem.js +8 -0
- package/package.json +1 -1
- package/dist/tables/store-settings/DeliveryMethodsTable.d.ts +0 -6
- package/dist/tables/store-settings/DeliveryMethodsTable.js +0 -15
- package/dist/tables/store-settings/PaymentMethodsTable.d.ts +0 -6
- package/dist/tables/store-settings/PaymentMethodsTable.js +0 -15
|
@@ -7,6 +7,23 @@ export default class ProductsTable extends Table {
|
|
|
7
7
|
const result = await query.execute();
|
|
8
8
|
return result.getRow();
|
|
9
9
|
}
|
|
10
|
+
async selectForSku(sku) {
|
|
11
|
+
const query = this.createQuery(SQL.products.selectForSku);
|
|
12
|
+
query.bindParameter('sku', String(sku).toUpperCase());
|
|
13
|
+
const result = await query.execute();
|
|
14
|
+
return result.getRow();
|
|
15
|
+
}
|
|
16
|
+
async selectIdForSku(sku) {
|
|
17
|
+
const query = this.createQuery(SQL.products.selectIdForSku);
|
|
18
|
+
query.bindParameter('sku', String(sku).toUpperCase());
|
|
19
|
+
const result = await query.execute();
|
|
20
|
+
return result.getValue();
|
|
21
|
+
}
|
|
22
|
+
async selectListForOrder() {
|
|
23
|
+
const query = this.createQuery(SQL.products.selectListForOrder);
|
|
24
|
+
const result = await query.execute();
|
|
25
|
+
return result.getRows();
|
|
26
|
+
}
|
|
10
27
|
async selectAll(queryOption) {
|
|
11
28
|
const query = this.createQuery(SQL.products.selectAll, queryOption);
|
|
12
29
|
const result = await query.execute();
|
|
@@ -18,9 +35,64 @@ export default class ProductsTable extends Table {
|
|
|
18
35
|
const result = await query.execute();
|
|
19
36
|
return result.getRow();
|
|
20
37
|
}
|
|
38
|
+
async insert(productData) {
|
|
39
|
+
const sku = productData.getSku();
|
|
40
|
+
let productId = await this.selectIdForSku(sku);
|
|
41
|
+
if (productId)
|
|
42
|
+
throw new Error(`Product with SKU: ${sku} already exist!`);
|
|
43
|
+
else
|
|
44
|
+
productId = await this.selectNextId();
|
|
45
|
+
const query = this.createQuery(SQL.products.insert);
|
|
46
|
+
query.bindParameter('id', productId);
|
|
47
|
+
this.bindParameters(query, productData);
|
|
48
|
+
productData.setId(productId);
|
|
49
|
+
await query.execute();
|
|
50
|
+
return productId;
|
|
51
|
+
}
|
|
21
52
|
async count(queryOption) {
|
|
22
53
|
const query = this.createQuery(SQL.products.count, queryOption);
|
|
23
54
|
const result = await query.execute();
|
|
24
55
|
return result.getValue();
|
|
25
56
|
}
|
|
57
|
+
async update(product) {
|
|
58
|
+
const query = this.createQuery(SQL.products.update);
|
|
59
|
+
query.bindParameter('id', product.getId());
|
|
60
|
+
this.bindParameters(query, product);
|
|
61
|
+
await query.execute();
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
async delete(productId) {
|
|
65
|
+
const query = this.createQuery(SQL.products.delete);
|
|
66
|
+
query.bindParameter('id', productId);
|
|
67
|
+
const result = await query.execute();
|
|
68
|
+
return result.getRowCount();
|
|
69
|
+
}
|
|
70
|
+
async restore(product) {
|
|
71
|
+
const productId = await this.selectIdForSku(product.getSku());
|
|
72
|
+
if (productId)
|
|
73
|
+
throw Error(`This product cannot be restored because it has been edited. There is a newer version of this product (id: ${productId})`);
|
|
74
|
+
const query = this.createQuery(SQL.products.restore);
|
|
75
|
+
query.bindParameter('id', product.getId());
|
|
76
|
+
const result = await query.execute();
|
|
77
|
+
return result.getRowCount();
|
|
78
|
+
}
|
|
79
|
+
bindParameters(query, productData) {
|
|
80
|
+
query.bindParameter('sku', productData.getSku());
|
|
81
|
+
query.bindParameter('url', productData.getUrl());
|
|
82
|
+
query.bindParameter('title', productData.getTitle());
|
|
83
|
+
query.bindParameter('description', productData.getDescription());
|
|
84
|
+
query.bindParameter('net_price', productData.getNetPrice());
|
|
85
|
+
query.bindParameter('vat', productData.getVat());
|
|
86
|
+
query.bindParameter('color', productData.getColor());
|
|
87
|
+
query.bindParameter('quantity', productData.getQuantity());
|
|
88
|
+
query.bindParameter('width', productData.getWidth());
|
|
89
|
+
query.bindParameter('length', productData.getLength());
|
|
90
|
+
query.bindParameter('height', productData.getHeight());
|
|
91
|
+
query.bindParameter('file_id', productData.getFileId());
|
|
92
|
+
}
|
|
93
|
+
async selectNextId() {
|
|
94
|
+
const query = this.createQuery(SQL.products.selectNextId);
|
|
95
|
+
const result = await query.execute();
|
|
96
|
+
return result.getValue();
|
|
97
|
+
}
|
|
26
98
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Table from '../../Table';
|
|
2
|
+
import FileConnectionTypeE from '../../types/FileConnectionTypeE';
|
|
3
|
+
import FileConnection from '../../stockObjects/FileConnection';
|
|
4
|
+
import FileConnectionRow from '../../types/rows/FileConnectionRow';
|
|
5
|
+
export default class FileConnectionsTable extends Table {
|
|
6
|
+
select(connectionType: FileConnectionTypeE, connection_id: number): Promise<any[]>;
|
|
7
|
+
selectForFileId(fileId: number): Promise<FileConnectionRow[]>;
|
|
8
|
+
insert(fileConnection: FileConnection): Promise<void>;
|
|
9
|
+
delete(fileId: number): Promise<boolean>;
|
|
10
|
+
deleteForConnection(connectionType: string, connectionId: number): Promise<boolean>;
|
|
11
|
+
private bindParameters;
|
|
12
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import Table from '../../Table';
|
|
2
|
+
import * as SQL from '../../SQL.json';
|
|
3
|
+
export default class FileConnectionsTable extends Table {
|
|
4
|
+
async select(connectionType, connection_id) {
|
|
5
|
+
const query = this.createQuery(SQL.fileConnections.select);
|
|
6
|
+
query.bindParameter('connectionType', connectionType);
|
|
7
|
+
query.bindParameter('connection_id', connection_id);
|
|
8
|
+
const result = await query.execute();
|
|
9
|
+
return result.getRows();
|
|
10
|
+
}
|
|
11
|
+
async selectForFileId(fileId) {
|
|
12
|
+
const query = this.createQuery(SQL.fileConnections.selectForFileId);
|
|
13
|
+
query.bindParameter('file_id', fileId);
|
|
14
|
+
const result = await query.execute();
|
|
15
|
+
return result.getRows();
|
|
16
|
+
}
|
|
17
|
+
async insert(fileConnection) {
|
|
18
|
+
const query = this.createQuery(SQL.fileConnections.insert);
|
|
19
|
+
this.bindParameters(query, fileConnection);
|
|
20
|
+
await query.execute();
|
|
21
|
+
}
|
|
22
|
+
async delete(fileId) {
|
|
23
|
+
const query = this.createQuery(SQL.fileConnections.delete);
|
|
24
|
+
query.bindParameter('file_id', fileId);
|
|
25
|
+
await query.execute();
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
async deleteForConnection(connectionType, connectionId) {
|
|
29
|
+
const query = this.createQuery(SQL.fileConnections.deleteForConnection);
|
|
30
|
+
query.bindParameter('connection_type', connectionType);
|
|
31
|
+
query.bindParameter('connection_id', connectionId);
|
|
32
|
+
await query.execute();
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
bindParameters(query, fileConnection) {
|
|
36
|
+
query.bindParameter('file_id', fileConnection.getFileId());
|
|
37
|
+
query.bindParameter('connection_type', fileConnection.getConnectionType());
|
|
38
|
+
query.bindParameter('connection_id', fileConnection.getConnectionId());
|
|
39
|
+
query.bindParameter('sequence', fileConnection.getSequence());
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -5,6 +5,6 @@ export default class ContactDetailsTable extends Table {
|
|
|
5
5
|
select(contactDetailsId: number): Promise<ContactDetailsRow>;
|
|
6
6
|
insert(contactDetails: ContactDetails): Promise<void>;
|
|
7
7
|
update(contactDetails: ContactDetails): Promise<void>;
|
|
8
|
-
|
|
8
|
+
selectNextId(): Promise<number>;
|
|
9
9
|
private bindParameters;
|
|
10
10
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Table from '../../Table';
|
|
2
|
+
import CompanyData from '../../stockObjects/CompanyData';
|
|
3
|
+
import CompanyDataRow from '../../types/rows/CompanyDataRow';
|
|
4
|
+
export default class CompanyDataTable extends Table {
|
|
5
|
+
select(): Promise<CompanyDataRow>;
|
|
6
|
+
update(companyData: CompanyData): Promise<boolean>;
|
|
7
|
+
insert(companyData: CompanyData): Promise<boolean>;
|
|
8
|
+
private selectNextId;
|
|
9
|
+
private bindParameters;
|
|
10
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import Table from '../../Table';
|
|
2
|
+
import * as SQL from '../../SQL.json';
|
|
3
|
+
export default class CompanyDataTable extends Table {
|
|
4
|
+
async select() {
|
|
5
|
+
const query = this.createQuery(SQL.companyData.select);
|
|
6
|
+
const result = await query.execute();
|
|
7
|
+
return result.getRow();
|
|
8
|
+
}
|
|
9
|
+
async update(companyData) {
|
|
10
|
+
const query = this.createQuery(SQL.companyData.update);
|
|
11
|
+
query.bindParameter('id', companyData.getId());
|
|
12
|
+
this.bindParameters(query, companyData);
|
|
13
|
+
await query.execute();
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
async insert(companyData) {
|
|
17
|
+
const id = await this.selectNextId();
|
|
18
|
+
const query = this.createQuery(SQL.companyData.insert);
|
|
19
|
+
query.bindParameter('id', id);
|
|
20
|
+
this.bindParameters(query, companyData);
|
|
21
|
+
await query.execute();
|
|
22
|
+
companyData.setId(id);
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
async selectNextId() {
|
|
26
|
+
const query = this.createQuery(SQL.companyData.selectNextId);
|
|
27
|
+
const result = await query.execute();
|
|
28
|
+
return result.getValue();
|
|
29
|
+
}
|
|
30
|
+
bindParameters(query, companyData) {
|
|
31
|
+
query.bindParameter('name', companyData.getName());
|
|
32
|
+
query.bindParameter('tax_number', companyData.getTaxNumber());
|
|
33
|
+
query.bindParameter('email', companyData.getEmail());
|
|
34
|
+
query.bindParameter('phone_number', companyData.getPhoneNumber());
|
|
35
|
+
query.bindParameter('address_id', companyData.getAddressId());
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Table from '../../Table';
|
|
2
|
+
import DeliveryMethodI from '../../types/DeliveryMethodI';
|
|
3
|
+
import DeliveryMethodRow from '../../types/rows/DeliveryMethodRow';
|
|
4
|
+
import DeliveryMethods from '../../stockObjects/DeliveryMethods';
|
|
5
|
+
export default class DeliveryMethodsTable extends Table {
|
|
6
|
+
select(id: number): Promise<DeliveryMethodI>;
|
|
7
|
+
selectAll(): Promise<DeliveryMethodI[]>;
|
|
8
|
+
selectAllActive(): Promise<DeliveryMethodRow[]>;
|
|
9
|
+
insert(deliveryMethods: DeliveryMethods): Promise<boolean>;
|
|
10
|
+
update(deliveryMethods: DeliveryMethods): Promise<boolean>;
|
|
11
|
+
private selectNextId;
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import Table from '../../Table';
|
|
2
|
+
import * as SQL from '../../SQL.json';
|
|
3
|
+
export default class DeliveryMethodsTable extends Table {
|
|
4
|
+
async select(id) {
|
|
5
|
+
const query = this.createQuery(SQL.deliveryMethods.select);
|
|
6
|
+
query.bindParameter('id', id);
|
|
7
|
+
const result = await query.execute();
|
|
8
|
+
return result.getRow();
|
|
9
|
+
}
|
|
10
|
+
async selectAll() {
|
|
11
|
+
const query = this.createQuery(SQL.deliveryMethods.selectAll);
|
|
12
|
+
const result = await query.execute();
|
|
13
|
+
return result.getRows();
|
|
14
|
+
}
|
|
15
|
+
async selectAllActive() {
|
|
16
|
+
const query = this.createQuery(SQL.deliveryMethods.selectAllActive);
|
|
17
|
+
const result = await query.execute();
|
|
18
|
+
return result.getRows();
|
|
19
|
+
}
|
|
20
|
+
async insert(deliveryMethods) {
|
|
21
|
+
const id = await this.selectNextId();
|
|
22
|
+
const query = this.createQuery(SQL.deliveryMethods.insert);
|
|
23
|
+
query.bindParameter('id', id);
|
|
24
|
+
query.bindParameter('key', deliveryMethods.getKey());
|
|
25
|
+
query.bindParameter('active', deliveryMethods.getActive());
|
|
26
|
+
await query.execute();
|
|
27
|
+
deliveryMethods.setId(id);
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
async update(deliveryMethods) {
|
|
31
|
+
const query = this.createQuery(SQL.deliveryMethods.update);
|
|
32
|
+
query.bindParameter('id', deliveryMethods.getId());
|
|
33
|
+
query.bindParameter('key', deliveryMethods.getKey());
|
|
34
|
+
query.bindParameter('active', deliveryMethods.getActive());
|
|
35
|
+
await query.execute();
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
async selectNextId() {
|
|
39
|
+
const query = this.createQuery(SQL.deliveryMethods.selectNextId);
|
|
40
|
+
const result = await query.execute();
|
|
41
|
+
return result.getValue();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Table from '../../Table';
|
|
2
|
+
import PaymentMethodI from '../../types/PaymentMethodI';
|
|
3
|
+
import PaymentMethods from '../../stockObjects/PaymentMethods';
|
|
4
|
+
import PaymentMethodRow from '../../types/rows/PaymentMethodRow';
|
|
5
|
+
export default class PaymentMethodsTable extends Table {
|
|
6
|
+
select(id: number): Promise<PaymentMethodI>;
|
|
7
|
+
selectAll(): Promise<PaymentMethodI[]>;
|
|
8
|
+
selectAllActive(): Promise<PaymentMethodRow[]>;
|
|
9
|
+
insert(paymentMethods: PaymentMethods): Promise<boolean>;
|
|
10
|
+
update(paymentMethods: PaymentMethods): Promise<boolean>;
|
|
11
|
+
private selectNextId;
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import Table from '../../Table';
|
|
2
|
+
import * as SQL from '../../SQL.json';
|
|
3
|
+
export default class PaymentMethodsTable extends Table {
|
|
4
|
+
async select(id) {
|
|
5
|
+
const query = this.createQuery(SQL.paymentMethods.select);
|
|
6
|
+
query.bindParameter('id', id);
|
|
7
|
+
const result = await query.execute();
|
|
8
|
+
return result.getRow();
|
|
9
|
+
}
|
|
10
|
+
async selectAll() {
|
|
11
|
+
const query = this.createQuery(SQL.paymentMethods.selectAll);
|
|
12
|
+
const result = await query.execute();
|
|
13
|
+
return result.getRows();
|
|
14
|
+
}
|
|
15
|
+
async selectAllActive() {
|
|
16
|
+
const query = this.createQuery(SQL.paymentMethods.selectAllActive);
|
|
17
|
+
const result = await query.execute();
|
|
18
|
+
return result.getRows();
|
|
19
|
+
}
|
|
20
|
+
async insert(paymentMethods) {
|
|
21
|
+
const id = await this.selectNextId();
|
|
22
|
+
const query = this.createQuery(SQL.paymentMethods.insert);
|
|
23
|
+
query.bindParameter('id', id);
|
|
24
|
+
query.bindParameter('key', paymentMethods.getKey());
|
|
25
|
+
query.bindParameter('active', paymentMethods.getActive());
|
|
26
|
+
await query.execute();
|
|
27
|
+
paymentMethods.setId(id);
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
async update(paymentMethods) {
|
|
31
|
+
const query = this.createQuery(SQL.paymentMethods.update);
|
|
32
|
+
query.bindParameter('id', paymentMethods.getId());
|
|
33
|
+
query.bindParameter('key', paymentMethods.getKey());
|
|
34
|
+
query.bindParameter('active', paymentMethods.getActive());
|
|
35
|
+
await query.execute();
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
async selectNextId() {
|
|
39
|
+
const query = this.createQuery(SQL.paymentMethods.selectNextId);
|
|
40
|
+
const result = await query.execute();
|
|
41
|
+
return result.getValue();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import OrderByI from "../utils/OrderByI";
|
|
1
2
|
import ParameterI from "./ParameterI";
|
|
2
3
|
import ResultLimitationI from "./ResultLimitationI";
|
|
3
4
|
import WhereOptionI from "./WhereOptionI";
|
|
4
5
|
export default interface QueryOptionsI {
|
|
5
6
|
where?: WhereOptionI;
|
|
6
|
-
order?:
|
|
7
|
+
order?: OrderByI[];
|
|
7
8
|
limit?: ResultLimitationI;
|
|
8
9
|
values?: ParameterI[];
|
|
9
10
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
declare enum ParameterType {
|
|
2
2
|
arrayNumber = 0,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
arrayBigint = 1,
|
|
4
|
+
arrayString = 2,
|
|
5
|
+
arrayBoolean = 3,
|
|
6
|
+
arrayValue = 4,
|
|
7
|
+
arrayObject = 5,
|
|
8
|
+
bigint = 6,
|
|
9
|
+
smallint = 7,
|
|
10
|
+
number = 8,
|
|
11
|
+
string = 9,
|
|
12
|
+
boolean = 10,
|
|
13
|
+
object = 11,
|
|
14
|
+
column = 12
|
|
12
15
|
}
|
|
13
16
|
export default ParameterType;
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
var ParameterType;
|
|
2
2
|
(function (ParameterType) {
|
|
3
3
|
ParameterType[ParameterType["arrayNumber"] = 0] = "arrayNumber";
|
|
4
|
-
ParameterType[ParameterType["
|
|
5
|
-
ParameterType[ParameterType["
|
|
6
|
-
ParameterType[ParameterType["
|
|
7
|
-
ParameterType[ParameterType["
|
|
8
|
-
ParameterType[ParameterType["
|
|
9
|
-
ParameterType[ParameterType["
|
|
10
|
-
ParameterType[ParameterType["
|
|
11
|
-
ParameterType[ParameterType["
|
|
12
|
-
ParameterType[ParameterType["
|
|
4
|
+
ParameterType[ParameterType["arrayBigint"] = 1] = "arrayBigint";
|
|
5
|
+
ParameterType[ParameterType["arrayString"] = 2] = "arrayString";
|
|
6
|
+
ParameterType[ParameterType["arrayBoolean"] = 3] = "arrayBoolean";
|
|
7
|
+
ParameterType[ParameterType["arrayValue"] = 4] = "arrayValue";
|
|
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";
|
|
13
16
|
})(ParameterType || (ParameterType = {}));
|
|
14
17
|
export default ParameterType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export default class Filters {
|
|
2
|
+
static email(value) {
|
|
3
|
+
value = value.trimStart();
|
|
4
|
+
value = value.trimEnd();
|
|
5
|
+
value = value.replace(/[^\w\.-@]/g, "");
|
|
6
|
+
value = value.substring(0, 99);
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
static phoneNumber(value) {
|
|
10
|
+
value = value.trimStart();
|
|
11
|
+
value = value.trimEnd();
|
|
12
|
+
value = value.replace(/[^\d\+48]/g, "");
|
|
13
|
+
value = value.substring(0, 99);
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
static sanitizeString(value) {
|
|
17
|
+
value = value.trimStart();
|
|
18
|
+
value = value.trimEnd();
|
|
19
|
+
value = value.replaceAll(/<[^>]*>/g, '');
|
|
20
|
+
value = value.replace(/[^a-zA-Z0-9-żźćńółęąśŻŹĆĄŚĘŁÓŃ\ ]/g, "");
|
|
21
|
+
value = value.substring(0, 99);
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
static databaseColumn(value) {
|
|
25
|
+
value = value.trimStart();
|
|
26
|
+
value = value.trimEnd();
|
|
27
|
+
value = value.replace(/[^a-zA-Z\_]/g, "");
|
|
28
|
+
value = value.substring(0, 99);
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import ParameterType from "../types/parameters/ParameterType";
|
|
2
|
+
import Filters from "./Filters";
|
|
3
|
+
import ParameterConversionSystem from "./parameters/ParameterConversionSystem";
|
|
4
|
+
import ParameterFilterSystem from "./parameters/ParameterFilterSystem";
|
|
5
|
+
import ParameterRulesSystem from "./parameters/ParameterRulesSystem";
|
|
6
|
+
export default class Parameters {
|
|
7
|
+
static correct(parameter, parameterFilter) {
|
|
8
|
+
let correctedParameter = ParameterConversionSystem.convert(parameter, parameterFilter.type);
|
|
9
|
+
if (!parameterFilter.filter && this.isParameterValueString(parameterFilter.type))
|
|
10
|
+
parameterFilter.filter = Filters.sanitizeString;
|
|
11
|
+
if (parameterFilter.filter)
|
|
12
|
+
correctedParameter = ParameterFilterSystem.filter(correctedParameter, parameterFilter);
|
|
13
|
+
if (parameterFilter.rules)
|
|
14
|
+
correctedParameter = ParameterRulesSystem.validate(correctedParameter, parameterFilter.rules);
|
|
15
|
+
return correctedParameter;
|
|
16
|
+
}
|
|
17
|
+
static isParameterValueString(type) {
|
|
18
|
+
if (type == ParameterType.string || type == ParameterType.arrayString)
|
|
19
|
+
return true;
|
|
20
|
+
else
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import ParameterType from "../../types/parameters/ParameterType";
|
|
2
|
+
export default class ParameterConversionSystem {
|
|
3
|
+
static convert(parameter, type) {
|
|
4
|
+
switch (type) {
|
|
5
|
+
case ParameterType.number: return Number(parameter);
|
|
6
|
+
case ParameterType.string: return String(parameter);
|
|
7
|
+
case ParameterType.boolean: return Boolean(parameter);
|
|
8
|
+
case ParameterType.object: return JSON.parse(parameter);
|
|
9
|
+
case ParameterType.bigint: return BigInt(parameter);
|
|
10
|
+
case ParameterType.arrayNumber: return this.convertArray(parameter, ParameterType.number);
|
|
11
|
+
case ParameterType.arrayString: return this.convertArray(parameter, ParameterType.string);
|
|
12
|
+
case ParameterType.arrayBoolean: return this.convertArray(parameter, ParameterType.boolean);
|
|
13
|
+
case ParameterType.arrayObject: return this.convertArray(parameter, ParameterType.object);
|
|
14
|
+
case ParameterType.arrayBigint: return this.convertArray(parameter, ParameterType.bigint);
|
|
15
|
+
case ParameterType.column: return String(parameter);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
static convertArray(parameterArray, type) {
|
|
19
|
+
if (!Array.isArray(parameterArray)) {
|
|
20
|
+
if (parameterArray)
|
|
21
|
+
parameterArray = [parameterArray];
|
|
22
|
+
else
|
|
23
|
+
parameterArray = [];
|
|
24
|
+
}
|
|
25
|
+
const convertedParameterArray = parameterArray.map(parameter => this.convert(parameter, type));
|
|
26
|
+
return convertedParameterArray;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import ParameterType from "../../types/parameters/ParameterType";
|
|
2
|
+
export default class ParameterFilterSystem {
|
|
3
|
+
static filter(parameter, parameterFilter) {
|
|
4
|
+
switch (parameterFilter.type) {
|
|
5
|
+
case ParameterType.string: return parameterFilter.filter(parameter);
|
|
6
|
+
case ParameterType.arrayString:
|
|
7
|
+
return parameter.map((stringParameter) => parameterFilter.filter(stringParameter));
|
|
8
|
+
default: return parameter;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
package/package.json
CHANGED