@goatlab/fluent-formio 0.6.5 → 0.6.7
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/LICENSE +21 -0
- package/README.md +22 -4
- package/package.json +21 -108
- package/dist/FormioConnector.d.ts +0 -37
- package/dist/FormioConnector.js +0 -344
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -5
- package/dist/test/advanced/advancedTestSuite.d.ts +0 -1
- package/dist/test/advanced/advancedTestSuite.js +0 -114
- package/dist/test/advanced/typeOrm.entity.d.ts +0 -16
- package/dist/test/advanced/typeOrm.entity.js +0 -57
- package/dist/test/advanced/typeOrm.repository.d.ts +0 -5
- package/dist/test/advanced/typeOrm.repository.js +0 -11
- package/dist/test/basic/basicTestSuite.d.ts +0 -1
- package/dist/test/basic/basicTestSuite.js +0 -45
- package/dist/test/basic/goat.dto.d.ts +0 -8
- package/dist/test/basic/goat.dto.js +0 -18
- package/dist/test/basic/goat.entity.d.ts +0 -10
- package/dist/test/basic/goat.entity.js +0 -41
- package/dist/test/basic/goat.repository.d.ts +0 -6
- package/dist/test/basic/goat.repository.js +0 -11
- package/dist/test/flock.d.ts +0 -4
- package/dist/test/flock.js +0 -25
- package/dist/test/relations/car/car.dto.d.ts +0 -5
- package/dist/test/relations/car/car.dto.js +0 -12
- package/dist/test/relations/car/car.entity.d.ts +0 -7
- package/dist/test/relations/car/car.entity.js +0 -32
- package/dist/test/relations/car/car.repositoryTypeOrm.d.ts +0 -8
- package/dist/test/relations/car/car.repositoryTypeOrm.js +0 -13
- package/dist/test/relations/relationsTestsSuite.d.ts +0 -1
- package/dist/test/relations/relationsTestsSuite.js +0 -93
- package/dist/test/relations/roles/role.dto.d.ts +0 -5
- package/dist/test/relations/roles/role.dto.js +0 -12
- package/dist/test/relations/roles/roles.entity.d.ts +0 -6
- package/dist/test/relations/roles/roles.entity.js +0 -29
- package/dist/test/relations/roles/roles.repositoryTypeOrm.d.ts +0 -8
- package/dist/test/relations/roles/roles.repositoryTypeOrm.js +0 -14
- package/dist/test/relations/roles/roles_user.dto.d.ts +0 -5
- package/dist/test/relations/roles/roles_user.dto.js +0 -12
- package/dist/test/relations/roles/roles_user.entity.d.ts +0 -5
- package/dist/test/relations/roles/roles_user.entity.js +0 -23
- package/dist/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +0 -6
- package/dist/test/relations/roles/roles_users.repositoryTypeOrm.js +0 -11
- package/dist/test/relations/user/user.dto.d.ts +0 -5
- package/dist/test/relations/user/user.dto.js +0 -12
- package/dist/test/relations/user/user.entity.d.ts +0 -14
- package/dist/test/relations/user/user.entity.js +0 -56
- package/dist/test/relations/user/user.repositoryTypeOrm.d.ts +0 -10
- package/dist/test/relations/user/user.repositoryTypeOrm.js +0 -16
- package/dist/tsconfig.tsbuildinfo +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) GOAT, SPA. and its affiliates.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -12,20 +12,38 @@
|
|
|
12
12
|
<img src="https://docs.goatlab.io/logo.png" alt="Logo" width="150" height="150">
|
|
13
13
|
</a>
|
|
14
14
|
|
|
15
|
-
<h3 align="center">GOAT-FLUENT</h3>
|
|
15
|
+
<h3 align="center">GOAT - FLUENT-FORM.IO</h3>
|
|
16
16
|
|
|
17
17
|
<p align="center">
|
|
18
|
-
|
|
18
|
+
Fluent - Time Saving (TS) utils
|
|
19
19
|
<br />
|
|
20
|
-
<a href="https://docs.goatlab.io/#/0.
|
|
20
|
+
<a href="https://docs.goatlab.io/#/0.7.x/fluent/fluent"><strong>Explore the docs »</strong></a>
|
|
21
21
|
<br />
|
|
22
22
|
<br />
|
|
23
|
-
<a href="https://codesandbox.io/s/goat-nestjs-tytmv?file=/src/main.ts">View Demo</a>
|
|
24
23
|
·
|
|
25
24
|
<a href="https://github.com/goat-io/fluent/issues">Report Bug</a>
|
|
26
25
|
·
|
|
27
26
|
<a href="https://github.com/goat-io/fluent/issues">Request Feature</a>
|
|
28
27
|
</p>
|
|
28
|
+
</p>
|
|
29
29
|
</p>
|
|
30
30
|
|
|
31
31
|
# Goat - Fluent
|
|
32
|
+
|
|
33
|
+
Fluent query interface for Multiple database types and helpers for fast API generation and general App building.
|
|
34
|
+
|
|
35
|
+
## Supported Databases
|
|
36
|
+
|
|
37
|
+
1. Form.io
|
|
38
|
+
|
|
39
|
+
### Installing
|
|
40
|
+
|
|
41
|
+
To install this package in your project, you can use the following command within your terminal.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
yarn add @goatlab/fluent-formio
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Documentation
|
|
48
|
+
|
|
49
|
+
To learn how to use this visit the [Goat Docs](https://docs.goatlab.io/#/0.7.x/fluent/fluent)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goatlab/fluent-formio",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.7",
|
|
4
4
|
"description": "Readable query Interface & API generator for TS and Node",
|
|
5
5
|
"homepage": "https://docs.goatlab.io",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,131 +12,44 @@
|
|
|
12
12
|
"files": [
|
|
13
13
|
"./dist/**/*"
|
|
14
14
|
],
|
|
15
|
-
"scripts": {
|
|
16
|
-
"install-p": "yarn",
|
|
17
|
-
"prebuild": "rimraf dist",
|
|
18
|
-
"prestart": "rimraf dist",
|
|
19
|
-
"predev": "rimraf dist",
|
|
20
|
-
"test": "jest --forceExit --passWithNoTests",
|
|
21
|
-
"dev": "tsc --watch",
|
|
22
|
-
"lint": "eslint src --fix",
|
|
23
|
-
"format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
|
|
24
|
-
"update:packages": "npm-check-updates -u && yarn",
|
|
25
|
-
"serve": "tsc -w",
|
|
26
|
-
"build": "tsc",
|
|
27
|
-
"pack": "npm-pack-zip",
|
|
28
|
-
"release": "release-it patch --no-npm.publish --ci",
|
|
29
|
-
"release:patch": "release-it patch --no-npm.publish --ci",
|
|
30
|
-
"release:minor": "release-it minor --no-npm.publish --ci",
|
|
31
|
-
"release:major": "release-it major --no-npm.publish --ci ",
|
|
32
|
-
"rc": "release-it --no-npm.publish --ci --preRelease=rc",
|
|
33
|
-
"rc:patch": "release-it patch --no-npm.publish --ci --preRelease=rc",
|
|
34
|
-
"rc:minor": "release-it minor --no-npm.publish --ci --preRelease=rc",
|
|
35
|
-
"rc:major": "release-it major --no-npm.publish --ci --preRelease=rc",
|
|
36
|
-
"changelog": "auto-changelog --template changelog-template.hbs -p -u --commit-limit false",
|
|
37
|
-
"changelog-debug": "auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json"
|
|
38
|
-
},
|
|
39
15
|
"keywords": [
|
|
40
16
|
"typescript",
|
|
41
17
|
"TS"
|
|
42
18
|
],
|
|
43
19
|
"author": "ignacio.cabrera@goatlab.io",
|
|
44
20
|
"license": "MIT",
|
|
45
|
-
"commitlint": {
|
|
46
|
-
"extends": [
|
|
47
|
-
"@commitlint/config-conventional"
|
|
48
|
-
],
|
|
49
|
-
"rules": {
|
|
50
|
-
"subject-case": [
|
|
51
|
-
2,
|
|
52
|
-
"never",
|
|
53
|
-
[]
|
|
54
|
-
]
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
"husky": {
|
|
58
|
-
"hooks": {
|
|
59
|
-
"pre-commit": "pretty-quick --staged && npm test",
|
|
60
|
-
"commit-msg": "exec < /dev/tty && git cz --hook || true && commitlint -E HUSKY_GIT_PARAMS",
|
|
61
|
-
"pre-push": "npm run build"
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
"release-it": {
|
|
65
|
-
"src": {
|
|
66
|
-
"commitMessage": "ci: CI-1 [Release] v%s"
|
|
67
|
-
},
|
|
68
|
-
"git": {
|
|
69
|
-
"requireBranch": "master",
|
|
70
|
-
"commitArgs": [
|
|
71
|
-
"--no-verify"
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
"hooks": {
|
|
75
|
-
"before:init": [
|
|
76
|
-
"npm run build",
|
|
77
|
-
"npm run pack"
|
|
78
|
-
],
|
|
79
|
-
"after:bump": "npm run changelog",
|
|
80
|
-
"after:release": "echo Successfully released ${name} v${version} to ${repo.repository}."
|
|
81
|
-
},
|
|
82
|
-
"github": {
|
|
83
|
-
"release": true,
|
|
84
|
-
"assets": [
|
|
85
|
-
"./*.zip"
|
|
86
|
-
]
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
"auto-changelog": {
|
|
90
|
-
"commitLimit": false,
|
|
91
|
-
"unreleased": true,
|
|
92
|
-
"issueUrl": "https://goatlab.atlassian.net/browse/{id}",
|
|
93
|
-
"replaceText": {
|
|
94
|
-
"[Ff]eature:": "",
|
|
95
|
-
"[Ff]ix:": "",
|
|
96
|
-
"[Bb]reak:": "",
|
|
97
|
-
"([A-Z]+-\\d+)": "[$1](https://goatlab.atlassian.net/browse//$1) - "
|
|
98
|
-
},
|
|
99
|
-
"includeBranch": [
|
|
100
|
-
"master"
|
|
101
|
-
]
|
|
102
|
-
},
|
|
103
|
-
"config": {
|
|
104
|
-
"commitizen": {
|
|
105
|
-
"path": "./node_modules/@digitalroute/cz-conventional-changelog-for-jira"
|
|
106
|
-
},
|
|
107
|
-
"mongodbMemoryServer": {
|
|
108
|
-
"version": "latest"
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
21
|
"dependencies": {
|
|
112
|
-
"@goatlab/fluent": "0.
|
|
22
|
+
"@goatlab/fluent": "0.7.32",
|
|
23
|
+
"@goatlab/js-utils": "0.8.34"
|
|
113
24
|
},
|
|
114
25
|
"devDependencies": {
|
|
115
|
-
"@commitlint/cli": "^16.2.3",
|
|
116
|
-
"@commitlint/config-conventional": "^16.2.1",
|
|
117
|
-
"@commitlint/prompt-cli": "^16.2.3",
|
|
118
|
-
"@digitalroute/cz-conventional-changelog-for-jira": "^7.2.1",
|
|
119
26
|
"@types/jest": "^27.4.1",
|
|
120
27
|
"@types/node": "^17.0.23",
|
|
121
|
-
"auto-changelog": "^2.4.0",
|
|
122
|
-
"commitizen": "^4.2.4",
|
|
123
|
-
"cz-conventional-changelog": "^3.3.0",
|
|
124
|
-
"cz-jira-smart-commit": "^3.0.0",
|
|
125
28
|
"dotenv-cli": "^5.1.0",
|
|
126
29
|
"eslint": "^8.5.0",
|
|
127
|
-
"
|
|
128
|
-
"jest": "^27.5.1",
|
|
30
|
+
"jest": "^29.7.0",
|
|
129
31
|
"jest-environment-node": "^27.5.1",
|
|
130
|
-
"npm-pack-zip": "^1.3.0",
|
|
131
32
|
"prettier": "^2.6.1",
|
|
132
33
|
"pretty-quick": "^3.1.3",
|
|
133
|
-
"
|
|
134
|
-
"ts-
|
|
135
|
-
"ts-node": "^10.7.0",
|
|
34
|
+
"ts-jest": "^29.2.6",
|
|
35
|
+
"ts-node": "^10.9.2",
|
|
136
36
|
"turbo": "^1.1.10",
|
|
137
|
-
"typescript": "^4.6.3"
|
|
37
|
+
"typescript": "^4.6.3",
|
|
38
|
+
"@goatlab/tsconfig": "0.0.11"
|
|
138
39
|
},
|
|
139
40
|
"engines": {
|
|
140
41
|
"node": ">=14.16.0"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"prebuild": "rimraf dist",
|
|
45
|
+
"prestart": "rimraf dist",
|
|
46
|
+
"predev": "rimraf dist",
|
|
47
|
+
"test": "echo 'skip'",
|
|
48
|
+
"dev": "tsc --watch",
|
|
49
|
+
"lint": "echo 'skip'",
|
|
50
|
+
"format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
|
|
51
|
+
"update:packages": "npm-check-updates -u && yarn",
|
|
52
|
+
"serve": "tsc -w",
|
|
53
|
+
"build": "echo 'skip'"
|
|
141
54
|
}
|
|
142
|
-
}
|
|
55
|
+
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { Filter, BaseDataElement, PaginatedData, Paginator, Sure } from '@goatlab/fluent';
|
|
2
|
-
import { BaseConnector, FluentConnectorInterface } from '@goatlab/fluent';
|
|
3
|
-
interface IFormioConnector {
|
|
4
|
-
baseEndPoint: string;
|
|
5
|
-
token?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare class Formioconnector<ModelDTO = BaseDataElement, InputDTO = ModelDTO, OutputDTO = ModelDTO> extends BaseConnector<ModelDTO, InputDTO, OutputDTO> implements FluentConnectorInterface<InputDTO, OutputDTO> {
|
|
8
|
-
private baseEndPoint;
|
|
9
|
-
private authToken;
|
|
10
|
-
constructor({ baseEndPoint, token }: IFormioConnector);
|
|
11
|
-
get(): Promise<OutputDTO[]>;
|
|
12
|
-
all(): Promise<OutputDTO[]>;
|
|
13
|
-
find(filter: Filter): Promise<OutputDTO[]>;
|
|
14
|
-
paginate(paginator: Paginator): Promise<PaginatedData<OutputDTO>>;
|
|
15
|
-
insert(data: InputDTO): Promise<OutputDTO>;
|
|
16
|
-
insertMany(data: InputDTO[]): Promise<OutputDTO[]>;
|
|
17
|
-
updateById(id: string, data: InputDTO): Promise<OutputDTO>;
|
|
18
|
-
truncate({ sure }: Sure): Promise<void>;
|
|
19
|
-
deleteById(id: string): Promise<string>;
|
|
20
|
-
findById(id: string): Promise<OutputDTO>;
|
|
21
|
-
private numberOfRows;
|
|
22
|
-
private getToken;
|
|
23
|
-
private getUrl;
|
|
24
|
-
private getHeaders;
|
|
25
|
-
private getSpacer;
|
|
26
|
-
private httpGET;
|
|
27
|
-
private httpPOST;
|
|
28
|
-
private httpPUT;
|
|
29
|
-
private httpDelete;
|
|
30
|
-
private getTokenType;
|
|
31
|
-
private getFilters;
|
|
32
|
-
private getLimit;
|
|
33
|
-
private getSkip;
|
|
34
|
-
private getOrder;
|
|
35
|
-
private getSelect;
|
|
36
|
-
}
|
|
37
|
-
export {};
|
package/dist/FormioConnector.js
DELETED
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Formioconnector = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
-
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
7
|
-
const isSameOrAfter_1 = tslib_1.__importDefault(require("dayjs/plugin/isSameOrAfter"));
|
|
8
|
-
const jwt_decode_1 = tslib_1.__importDefault(require("jwt-decode"));
|
|
9
|
-
const await_to_js_1 = tslib_1.__importDefault(require("await-to-js"));
|
|
10
|
-
const js_utils_1 = require("@goatlab/js-utils");
|
|
11
|
-
const fluent_1 = require("@goatlab/fluent");
|
|
12
|
-
dayjs_1.default.extend(isSameOrAfter_1.default);
|
|
13
|
-
const GoatExtenderAttributes = [
|
|
14
|
-
'id',
|
|
15
|
-
'owner',
|
|
16
|
-
'roles',
|
|
17
|
-
'created',
|
|
18
|
-
'modified',
|
|
19
|
-
'_ngram'
|
|
20
|
-
];
|
|
21
|
-
class Formioconnector extends fluent_1.BaseConnector {
|
|
22
|
-
constructor({ baseEndPoint, token }) {
|
|
23
|
-
super();
|
|
24
|
-
this.baseEndPoint = '';
|
|
25
|
-
this.authToken = '';
|
|
26
|
-
this.baseEndPoint = baseEndPoint;
|
|
27
|
-
this.authToken = token;
|
|
28
|
-
}
|
|
29
|
-
async get() {
|
|
30
|
-
const [error, result] = await (0, await_to_js_1.default)(this.httpGET());
|
|
31
|
-
if (error) {
|
|
32
|
-
console.log(error);
|
|
33
|
-
throw new Error('Error while getting submissions');
|
|
34
|
-
}
|
|
35
|
-
const data = result.data.map(r => {
|
|
36
|
-
const response = {
|
|
37
|
-
...{
|
|
38
|
-
id: r.id,
|
|
39
|
-
owner: r.owner,
|
|
40
|
-
roles: r.roles,
|
|
41
|
-
created: r.created,
|
|
42
|
-
modified: r.modified
|
|
43
|
-
},
|
|
44
|
-
...r.data
|
|
45
|
-
};
|
|
46
|
-
return response;
|
|
47
|
-
});
|
|
48
|
-
let orderedResults = this.jsApplySelect(data);
|
|
49
|
-
orderedResults = this.jsApplyOrderBy(orderedResults);
|
|
50
|
-
this.reset();
|
|
51
|
-
return orderedResults;
|
|
52
|
-
}
|
|
53
|
-
async all() {
|
|
54
|
-
return this.get();
|
|
55
|
-
}
|
|
56
|
-
async find(filter) {
|
|
57
|
-
return this.get();
|
|
58
|
-
}
|
|
59
|
-
async paginate(paginator) {
|
|
60
|
-
const numberOfRows = await this.numberOfRows();
|
|
61
|
-
this.offset((paginator.page - 1) * paginator.perPage).take(paginator.perPage);
|
|
62
|
-
const results = {
|
|
63
|
-
data: await this.get(),
|
|
64
|
-
current_page: paginator.page,
|
|
65
|
-
first_page_url: '',
|
|
66
|
-
prev_page_url: '',
|
|
67
|
-
next_page_url: '',
|
|
68
|
-
per_page: paginator.perPage,
|
|
69
|
-
path: '',
|
|
70
|
-
total: Number(numberOfRows)
|
|
71
|
-
};
|
|
72
|
-
this.reset();
|
|
73
|
-
return results;
|
|
74
|
-
}
|
|
75
|
-
async insert(data) {
|
|
76
|
-
const [error, result] = await (0, await_to_js_1.default)(this.httpPOST(data));
|
|
77
|
-
if (error) {
|
|
78
|
-
console.log(error);
|
|
79
|
-
throw new Error('Cannot insert data');
|
|
80
|
-
}
|
|
81
|
-
const response = {
|
|
82
|
-
...{
|
|
83
|
-
id: result.data.id,
|
|
84
|
-
owner: result.data.owner,
|
|
85
|
-
roles: result.data.roles,
|
|
86
|
-
created: result.data.created,
|
|
87
|
-
modified: result.data.modified
|
|
88
|
-
},
|
|
89
|
-
...result.data.data
|
|
90
|
-
};
|
|
91
|
-
this.reset();
|
|
92
|
-
return response;
|
|
93
|
-
}
|
|
94
|
-
async insertMany(data) {
|
|
95
|
-
const insertedElements = [];
|
|
96
|
-
for (const element of data) {
|
|
97
|
-
const inserted = await this.insert({
|
|
98
|
-
...element
|
|
99
|
-
});
|
|
100
|
-
insertedElements.push(inserted);
|
|
101
|
-
}
|
|
102
|
-
this.reset();
|
|
103
|
-
return insertedElements;
|
|
104
|
-
}
|
|
105
|
-
async updateById(id, data) {
|
|
106
|
-
if (!id) {
|
|
107
|
-
throw new Error('Formio connector error. Cannot update a Model without id key');
|
|
108
|
-
}
|
|
109
|
-
if (id.includes('_local')) {
|
|
110
|
-
throw new Error('Formio connector error. Cannot update a local document');
|
|
111
|
-
}
|
|
112
|
-
const [error, result] = await (0, await_to_js_1.default)(this.httpPUT(id, data));
|
|
113
|
-
if (error) {
|
|
114
|
-
console.log(error);
|
|
115
|
-
throw new Error('Cannot insert data');
|
|
116
|
-
}
|
|
117
|
-
const response = result.data;
|
|
118
|
-
this.reset();
|
|
119
|
-
return response;
|
|
120
|
-
}
|
|
121
|
-
async truncate({ sure }) {
|
|
122
|
-
}
|
|
123
|
-
async deleteById(id) {
|
|
124
|
-
const [error, removed] = await (0, await_to_js_1.default)(this.httpDelete(id));
|
|
125
|
-
if (error) {
|
|
126
|
-
console.log(error);
|
|
127
|
-
throw new Error(`FormioConnector: Could not delete ${id}`);
|
|
128
|
-
}
|
|
129
|
-
this.reset();
|
|
130
|
-
return removed.data;
|
|
131
|
-
}
|
|
132
|
-
async findById(id) {
|
|
133
|
-
const [error, data] = await (0, await_to_js_1.default)(this.first());
|
|
134
|
-
if (error) {
|
|
135
|
-
console.log(error);
|
|
136
|
-
throw new Error('Find() could not get remote data');
|
|
137
|
-
}
|
|
138
|
-
this.reset();
|
|
139
|
-
return data;
|
|
140
|
-
}
|
|
141
|
-
async numberOfRows() {
|
|
142
|
-
let url = this.getUrl();
|
|
143
|
-
const headers = this.getHeaders();
|
|
144
|
-
const filters = this.getFilters();
|
|
145
|
-
const limit = '?limit=1';
|
|
146
|
-
const skip = this.getSkip();
|
|
147
|
-
const order = this.getOrder();
|
|
148
|
-
const select = this.getSelect();
|
|
149
|
-
const spacer = '';
|
|
150
|
-
url = url + spacer + limit;
|
|
151
|
-
url = filters ? url + this.getSpacer(url) + filters : url;
|
|
152
|
-
url = skip ? url + this.getSpacer(url) + skip : url;
|
|
153
|
-
url = order ? url + this.getSpacer(url) + order : url;
|
|
154
|
-
url = select ? url + this.getSpacer(url) + select : url;
|
|
155
|
-
const isOnline = true;
|
|
156
|
-
if (!isOnline) {
|
|
157
|
-
throw new Error(`Cannot make get request to ${url}.You are not online`);
|
|
158
|
-
}
|
|
159
|
-
const response = await axios_1.default.get(url, { headers });
|
|
160
|
-
return response.headers['content-range'].split('/')[1];
|
|
161
|
-
}
|
|
162
|
-
getToken() {
|
|
163
|
-
if (typeof localStorage === 'undefined') {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
const token = localStorage.getItem('formioToken');
|
|
167
|
-
if (!token || this.getTokenType(token) === 'x-jwt-token') {
|
|
168
|
-
return token;
|
|
169
|
-
}
|
|
170
|
-
const decodedToken = (0, jwt_decode_1.default)(token);
|
|
171
|
-
const expDate = dayjs_1.default.unix(decodedToken.exp);
|
|
172
|
-
if ((0, dayjs_1.default)().isSameOrAfter(expDate)) {
|
|
173
|
-
js_utils_1.Events.emit('GOAT:SESSION:EXPIRED', {
|
|
174
|
-
data: expDate,
|
|
175
|
-
text: 'Session expired'
|
|
176
|
-
});
|
|
177
|
-
throw new Error('Token has expired.');
|
|
178
|
-
}
|
|
179
|
-
return token;
|
|
180
|
-
}
|
|
181
|
-
getUrl() {
|
|
182
|
-
const baseUrl = `${this.baseEndPoint}/submission`;
|
|
183
|
-
return baseUrl;
|
|
184
|
-
}
|
|
185
|
-
getHeaders() {
|
|
186
|
-
const headers = {};
|
|
187
|
-
let token = {};
|
|
188
|
-
if (typeof localStorage !== 'undefined') {
|
|
189
|
-
token = this.getToken();
|
|
190
|
-
}
|
|
191
|
-
if (this.authToken || this.authToken === '') {
|
|
192
|
-
token = this.authToken;
|
|
193
|
-
}
|
|
194
|
-
if (!token) {
|
|
195
|
-
return headers;
|
|
196
|
-
}
|
|
197
|
-
const type = this.getTokenType(token);
|
|
198
|
-
headers[type] = token;
|
|
199
|
-
return headers;
|
|
200
|
-
}
|
|
201
|
-
getSpacer(url) {
|
|
202
|
-
return url.substr(url.length - 1) === '&' ? '' : '&';
|
|
203
|
-
}
|
|
204
|
-
async httpGET() {
|
|
205
|
-
let url = this.getUrl();
|
|
206
|
-
const headers = this.getHeaders();
|
|
207
|
-
const filters = this.getFilters();
|
|
208
|
-
const limit = this.getLimit();
|
|
209
|
-
const skip = this.getSkip();
|
|
210
|
-
const order = this.getOrder();
|
|
211
|
-
const select = this.getSelect();
|
|
212
|
-
const spacer = '';
|
|
213
|
-
url = url + spacer + limit;
|
|
214
|
-
url = filters ? url + this.getSpacer(url) + filters : url;
|
|
215
|
-
url = skip ? url + this.getSpacer(url) + skip : url;
|
|
216
|
-
url = order ? url + this.getSpacer(url) + order : url;
|
|
217
|
-
url = select ? url + this.getSpacer(url) + select : url;
|
|
218
|
-
const isOnline = true;
|
|
219
|
-
if (!isOnline) {
|
|
220
|
-
throw new Error(`Cannot make get request to ${url}.You are not online`);
|
|
221
|
-
}
|
|
222
|
-
return axios_1.default.get(url, { headers });
|
|
223
|
-
}
|
|
224
|
-
async httpPOST(data) {
|
|
225
|
-
const url = this.getUrl();
|
|
226
|
-
const headers = this.getHeaders();
|
|
227
|
-
const isOnline = true;
|
|
228
|
-
if (!isOnline) {
|
|
229
|
-
throw new Error(`Cannot make request post to ${url}.You are not online`);
|
|
230
|
-
}
|
|
231
|
-
return axios_1.default.post(url, { data }, { headers });
|
|
232
|
-
}
|
|
233
|
-
async httpPUT(id, data) {
|
|
234
|
-
const isOnline = true;
|
|
235
|
-
const url = `${this.getUrl()}/${id}`;
|
|
236
|
-
const headers = this.getHeaders();
|
|
237
|
-
if (!isOnline) {
|
|
238
|
-
throw new Error(`Cannot make request post to ${url}.You are not online`);
|
|
239
|
-
}
|
|
240
|
-
return axios_1.default.put(url, { data }, { headers });
|
|
241
|
-
}
|
|
242
|
-
httpDelete(id) {
|
|
243
|
-
const headers = this.getHeaders();
|
|
244
|
-
const url = `${this.getUrl()}/${id}`;
|
|
245
|
-
return axios_1.default.delete(url, { headers });
|
|
246
|
-
}
|
|
247
|
-
getTokenType(token) {
|
|
248
|
-
return token.length > 32 ? 'x-jwt-token' : 'x-token';
|
|
249
|
-
}
|
|
250
|
-
getFilters() {
|
|
251
|
-
const filter = this.whereArray;
|
|
252
|
-
if (!filter || filter.length === 0) {
|
|
253
|
-
return undefined;
|
|
254
|
-
}
|
|
255
|
-
let filterQuery = '';
|
|
256
|
-
filter.forEach(condition => {
|
|
257
|
-
let valueString = '';
|
|
258
|
-
const element = GoatExtenderAttributes.includes(condition[0])
|
|
259
|
-
? condition[0]
|
|
260
|
-
: `data.${condition[0]}`;
|
|
261
|
-
const operator = condition[1];
|
|
262
|
-
const value = condition[2];
|
|
263
|
-
switch (operator) {
|
|
264
|
-
case '=':
|
|
265
|
-
filterQuery = `${filterQuery + element}=${value}&`;
|
|
266
|
-
break;
|
|
267
|
-
case '!=':
|
|
268
|
-
filterQuery = `${filterQuery + element}__ne=${value}&`;
|
|
269
|
-
break;
|
|
270
|
-
case '>':
|
|
271
|
-
filterQuery = `${filterQuery + element}__gt=${value}&`;
|
|
272
|
-
break;
|
|
273
|
-
case '>=':
|
|
274
|
-
filterQuery = `${filterQuery + element}__gte=${value}&`;
|
|
275
|
-
break;
|
|
276
|
-
case '<':
|
|
277
|
-
filterQuery = `${filterQuery + element}__lt=${value}&`;
|
|
278
|
-
break;
|
|
279
|
-
case '<=':
|
|
280
|
-
filterQuery = `${filterQuery + element}__lte=${value}&`;
|
|
281
|
-
break;
|
|
282
|
-
case 'in':
|
|
283
|
-
valueString = '';
|
|
284
|
-
value.forEach((val, index, array) => {
|
|
285
|
-
valueString =
|
|
286
|
-
index === array.length - 1
|
|
287
|
-
? valueString + val
|
|
288
|
-
: `${valueString + val},`;
|
|
289
|
-
});
|
|
290
|
-
filterQuery = `${filterQuery + element}__in=${valueString}&`;
|
|
291
|
-
break;
|
|
292
|
-
case 'nin':
|
|
293
|
-
valueString = '';
|
|
294
|
-
value.forEach((val, index, array) => {
|
|
295
|
-
valueString =
|
|
296
|
-
index === array.length - 1
|
|
297
|
-
? valueString + val
|
|
298
|
-
: `${valueString + val},`;
|
|
299
|
-
});
|
|
300
|
-
filterQuery = `${filterQuery + element}__nin=${valueString}&`;
|
|
301
|
-
break;
|
|
302
|
-
case 'exists':
|
|
303
|
-
filterQuery = `${filterQuery + element}__exists=${true}&`;
|
|
304
|
-
break;
|
|
305
|
-
case '!exists':
|
|
306
|
-
filterQuery = `${filterQuery + element}__exists=${false}&`;
|
|
307
|
-
break;
|
|
308
|
-
case 'regex':
|
|
309
|
-
filterQuery = `${filterQuery + element}__regex=${value}&`;
|
|
310
|
-
break;
|
|
311
|
-
}
|
|
312
|
-
});
|
|
313
|
-
return filterQuery.substring(0, filterQuery.length - 1);
|
|
314
|
-
}
|
|
315
|
-
getLimit() {
|
|
316
|
-
const limit = '?limit=';
|
|
317
|
-
if (!this.limitNumber || this.limitNumber === 0) {
|
|
318
|
-
this.limitNumber = 50;
|
|
319
|
-
}
|
|
320
|
-
return `${limit}${this.limitNumber}`;
|
|
321
|
-
}
|
|
322
|
-
getSkip() {
|
|
323
|
-
const skip = 'skip=';
|
|
324
|
-
if (!this.offsetNumber) {
|
|
325
|
-
this.offsetNumber = 0;
|
|
326
|
-
}
|
|
327
|
-
return skip + this.offsetNumber;
|
|
328
|
-
}
|
|
329
|
-
getOrder() {
|
|
330
|
-
const order = 'sort=';
|
|
331
|
-
const or = this.orderByArray[1] === 'DESC' ? '-' : '';
|
|
332
|
-
return order + or + this.orderByArray[0];
|
|
333
|
-
}
|
|
334
|
-
getSelect() {
|
|
335
|
-
let select = this.selectArray;
|
|
336
|
-
select = select.map(e => e.split(' as ')[0]);
|
|
337
|
-
if (!select) {
|
|
338
|
-
return;
|
|
339
|
-
}
|
|
340
|
-
select = select.map(e => GoatExtenderAttributes.includes(e) ? e : `data.${e}`);
|
|
341
|
-
return `select=${select.join(',')}`;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
exports.Formioconnector = Formioconnector;
|
package/dist/index.d.ts
DELETED
package/dist/index.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Formioconnector = void 0;
|
|
4
|
-
const FormioConnector_1 = require("./FormioConnector");
|
|
5
|
-
Object.defineProperty(exports, "Formioconnector", { enumerable: true, get: function () { return FormioConnector_1.Formioconnector; } });
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const advancedTestSuite: (Model: any) => void;
|