ixc-orm 1.4.2 → 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/README.md +1 -1
- package/dist/IXCClient.d.ts +18 -13
- package/dist/IXCClient.js +53 -26
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# IXC-ORM
|
|
1
|
+
# IXC-ORM [](https://www.npmjs.com/package/ixc-orm)
|
|
2
2
|
|
|
3
3
|
Este ORM simples visa facilitar o consumo de dados da API oficial do IXCsoft.\
|
|
4
4
|
Esta biblioteca não faz parte das bibliotecas oficiais da IXCsoft e foi desenvolvida de forma independente e sem fins lucrativos.
|
package/dist/IXCClient.d.ts
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
import { AxiosError } from 'axios';
|
|
2
1
|
import { IXCOptions, IXCQuery, IXCResponse, IXCSortOrder } from './types';
|
|
3
2
|
export default abstract class IXCClient {
|
|
4
3
|
protected table: string;
|
|
5
4
|
protected params: IXCQuery[];
|
|
6
5
|
protected options: IXCOptions;
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
9
7
|
* @param table O nome da tabela correspondente ao banco de dados do seu servidor IXC
|
|
10
8
|
* @see {@link https://wikiapiprovedor.ixcsoft.com.br/index.php}
|
|
11
9
|
*/
|
|
12
10
|
constructor(table: string);
|
|
13
11
|
/**
|
|
12
|
+
* Incrementa o array de parâmetros que serão trasformados no corpo de uma requisição
|
|
13
|
+
* e passados como filtro grid da API do IXC
|
|
14
14
|
*
|
|
15
|
-
* @param whereClauses Um array de strings, no formato [coluna, operador, valor]
|
|
16
|
-
* Obs
|
|
17
|
-
*
|
|
15
|
+
* @param whereClauses Um array de strings, no formato [coluna, operador, valor]\
|
|
16
|
+
* `Obs`: se você passar um array no formato [coluna, valor] o operador será considerado como '='\
|
|
17
|
+
* Os operadores válidos são: =, !=, >, <, >=, <=, LIKE
|
|
18
18
|
* @returns A própria instância
|
|
19
19
|
*/
|
|
20
20
|
where(whereClauses: string[]): IXCClient;
|
|
21
21
|
/**
|
|
22
|
+
* Define como a API do IXC ordenará os dados retornados
|
|
22
23
|
*
|
|
23
24
|
* @param column A coluna que será usada para ordenar a busca
|
|
24
25
|
* @param order A ordem da busca ('asc'ou 'desc')
|
|
@@ -26,28 +27,32 @@ export default abstract class IXCClient {
|
|
|
26
27
|
*/
|
|
27
28
|
orderBy(column: string, order: keyof typeof IXCSortOrder): IXCClient;
|
|
28
29
|
/**
|
|
30
|
+
* Envia uma solicitação GET para a API do IXC, com o header `ixcsoft` definico como `listar`
|
|
31
|
+
* Preenche o corpo da requisição com os dados passados pela função `where` no formado JSON
|
|
29
32
|
*
|
|
30
|
-
* @param pg O número da página que será solicitada ao IXC
|
|
31
|
-
* @param rows A quantidade de linhas (registros) por página
|
|
32
|
-
* @returns Promise<
|
|
33
|
+
* @param pg O número da página que será solicitada ao IXC `padão = 1`
|
|
34
|
+
* @param rows A quantidade de linhas (registros) por página `padrão = 20`
|
|
35
|
+
* @returns Promise<IXCResponse>
|
|
33
36
|
*/
|
|
34
|
-
get(pg?: number, rows?: number): Promise<
|
|
37
|
+
get(pg?: number, rows?: number): Promise<IXCResponse>;
|
|
35
38
|
/**
|
|
39
|
+
* Envia uma requisição do tipo `POST` para a API do IXC, com o header `ixcsoft` vazio
|
|
36
40
|
*
|
|
37
41
|
* @param body Um objeto no formado "chave: valor" contendo as informações do novo registro
|
|
38
42
|
* a ser inserido no banco de dados do seu servidor IXC
|
|
39
|
-
* @returns Promise<
|
|
43
|
+
* @returns Promise<IXCResponse>
|
|
40
44
|
*/
|
|
41
45
|
post(body?: {
|
|
42
46
|
[key: string]: any;
|
|
43
|
-
}): Promise<
|
|
47
|
+
}): Promise<IXCResponse>;
|
|
44
48
|
/**
|
|
49
|
+
* Envia uma requisição do tipo `PUT` para a API do IXC, com o header `ixcsoft` vazio
|
|
45
50
|
*
|
|
46
51
|
* @param id O id do registro que será alterado
|
|
47
52
|
* @param body Um objeto no formado "chave : valor" contendo as colunas que serão alteradas
|
|
48
|
-
* @returns Promise<
|
|
53
|
+
* @returns Promise<IXCResponse>
|
|
49
54
|
*/
|
|
50
55
|
put(id: number, body?: {
|
|
51
56
|
[key: string]: any;
|
|
52
|
-
}): Promise<
|
|
57
|
+
}): Promise<IXCResponse>;
|
|
53
58
|
}
|
package/dist/IXCClient.js
CHANGED
|
@@ -20,12 +20,11 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
return t;
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
const axios_1 = require("axios");
|
|
24
23
|
const request_1 = require("./request");
|
|
25
24
|
const types_1 = require("./types");
|
|
25
|
+
const response_1 = require("./response");
|
|
26
26
|
class IXCClient {
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
29
28
|
* @param table O nome da tabela correspondente ao banco de dados do seu servidor IXC
|
|
30
29
|
* @see {@link https://wikiapiprovedor.ixcsoft.com.br/index.php}
|
|
31
30
|
*/
|
|
@@ -40,10 +39,12 @@ class IXCClient {
|
|
|
40
39
|
};
|
|
41
40
|
}
|
|
42
41
|
/**
|
|
42
|
+
* Incrementa o array de parâmetros que serão trasformados no corpo de uma requisição
|
|
43
|
+
* e passados como filtro grid da API do IXC
|
|
43
44
|
*
|
|
44
|
-
* @param whereClauses Um array de strings, no formato [coluna, operador, valor]
|
|
45
|
-
* Obs
|
|
46
|
-
*
|
|
45
|
+
* @param whereClauses Um array de strings, no formato [coluna, operador, valor]\
|
|
46
|
+
* `Obs`: se você passar um array no formato [coluna, valor] o operador será considerado como '='\
|
|
47
|
+
* Os operadores válidos são: =, !=, >, <, >=, <=, LIKE
|
|
47
48
|
* @returns A própria instância
|
|
48
49
|
*/
|
|
49
50
|
where(whereClauses) {
|
|
@@ -63,6 +64,7 @@ class IXCClient {
|
|
|
63
64
|
return this;
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
67
|
+
* Define como a API do IXC ordenará os dados retornados
|
|
66
68
|
*
|
|
67
69
|
* @param column A coluna que será usada para ordenar a busca
|
|
68
70
|
* @param order A ordem da busca ('asc'ou 'desc')
|
|
@@ -74,27 +76,36 @@ class IXCClient {
|
|
|
74
76
|
return this;
|
|
75
77
|
}
|
|
76
78
|
/**
|
|
79
|
+
* Envia uma solicitação GET para a API do IXC, com o header `ixcsoft` definico como `listar`
|
|
80
|
+
* Preenche o corpo da requisição com os dados passados pela função `where` no formado JSON
|
|
77
81
|
*
|
|
78
|
-
* @param pg O número da página que será solicitada ao IXC
|
|
79
|
-
* @param rows A quantidade de linhas (registros) por página
|
|
80
|
-
* @returns Promise<
|
|
82
|
+
* @param pg O número da página que será solicitada ao IXC `padão = 1`
|
|
83
|
+
* @param rows A quantidade de linhas (registros) por página `padrão = 20`
|
|
84
|
+
* @returns Promise<IXCResponse>
|
|
81
85
|
*/
|
|
82
86
|
get(pg, rows) {
|
|
83
87
|
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
-
|
|
88
|
+
var _a, _b;
|
|
89
|
+
const _c = this.options, { page, rowsPerPage } = _c, rest = __rest(_c, ["page", "rowsPerPage"]);
|
|
85
90
|
const opts = Object.assign({ page: pg !== null && pg !== void 0 ? pg : page, rowsPerPage: rows !== null && rows !== void 0 ? rows : rowsPerPage }, rest);
|
|
86
91
|
const axios = (0, request_1.createAxiosInstance)('GET');
|
|
87
92
|
const payload = (0, request_1.createRequestPayload)(this.table, this.params, opts);
|
|
88
93
|
try {
|
|
89
94
|
const response = yield axios.get(this.table, payload);
|
|
90
|
-
|
|
95
|
+
if (response.status === 200) {
|
|
96
|
+
return response.data;
|
|
97
|
+
}
|
|
98
|
+
return (0, response_1.createResponse)({
|
|
99
|
+
error: true,
|
|
100
|
+
message: (_a = response.data) === null || _a === void 0 ? void 0 : _a.message
|
|
101
|
+
});
|
|
91
102
|
}
|
|
92
103
|
catch (error) {
|
|
93
104
|
console.error(error);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
105
|
+
return (0, response_1.createResponse)({
|
|
106
|
+
error: true,
|
|
107
|
+
message: ((_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText) || error.message || 'Erro desconhecido'
|
|
108
|
+
});
|
|
98
109
|
}
|
|
99
110
|
finally {
|
|
100
111
|
this.params = [];
|
|
@@ -108,24 +119,32 @@ class IXCClient {
|
|
|
108
119
|
});
|
|
109
120
|
}
|
|
110
121
|
/**
|
|
122
|
+
* Envia uma requisição do tipo `POST` para a API do IXC, com o header `ixcsoft` vazio
|
|
111
123
|
*
|
|
112
124
|
* @param body Um objeto no formado "chave: valor" contendo as informações do novo registro
|
|
113
125
|
* a ser inserido no banco de dados do seu servidor IXC
|
|
114
|
-
* @returns Promise<
|
|
126
|
+
* @returns Promise<IXCResponse>
|
|
115
127
|
*/
|
|
116
128
|
post(body) {
|
|
117
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
+
var _a, _b;
|
|
118
131
|
const axios = (0, request_1.createAxiosInstance)('POST');
|
|
119
132
|
try {
|
|
120
133
|
const response = yield axios.post(this.table, { data: body });
|
|
121
|
-
|
|
134
|
+
if (response.status === 200) {
|
|
135
|
+
return response.data;
|
|
136
|
+
}
|
|
137
|
+
return (0, response_1.createResponse)({
|
|
138
|
+
error: true,
|
|
139
|
+
message: (_a = response.data) === null || _a === void 0 ? void 0 : _a.message
|
|
140
|
+
});
|
|
122
141
|
}
|
|
123
142
|
catch (error) {
|
|
124
143
|
console.error(error);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
144
|
+
return (0, response_1.createResponse)({
|
|
145
|
+
error: true,
|
|
146
|
+
message: ((_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText) || error.message || 'Erro desconhecido'
|
|
147
|
+
});
|
|
129
148
|
}
|
|
130
149
|
finally {
|
|
131
150
|
this.params = [];
|
|
@@ -133,24 +152,32 @@ class IXCClient {
|
|
|
133
152
|
});
|
|
134
153
|
}
|
|
135
154
|
/**
|
|
155
|
+
* Envia uma requisição do tipo `PUT` para a API do IXC, com o header `ixcsoft` vazio
|
|
136
156
|
*
|
|
137
157
|
* @param id O id do registro que será alterado
|
|
138
158
|
* @param body Um objeto no formado "chave : valor" contendo as colunas que serão alteradas
|
|
139
|
-
* @returns Promise<
|
|
159
|
+
* @returns Promise<IXCResponse>
|
|
140
160
|
*/
|
|
141
161
|
put(id, body) {
|
|
142
162
|
return __awaiter(this, void 0, void 0, function* () {
|
|
163
|
+
var _a, _b;
|
|
143
164
|
const axios = (0, request_1.createAxiosInstance)('PUT');
|
|
144
165
|
try {
|
|
145
166
|
const response = yield axios.put(`${this.table}/${id}`, { data: body });
|
|
146
|
-
|
|
167
|
+
if (response.status === 200) {
|
|
168
|
+
return response.data;
|
|
169
|
+
}
|
|
170
|
+
return (0, response_1.createResponse)({
|
|
171
|
+
error: true,
|
|
172
|
+
message: (_a = response.data) === null || _a === void 0 ? void 0 : _a.message
|
|
173
|
+
});
|
|
147
174
|
}
|
|
148
175
|
catch (error) {
|
|
149
176
|
console.error(error);
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
177
|
+
return (0, response_1.createResponse)({
|
|
178
|
+
error: true,
|
|
179
|
+
message: ((_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText) || error.message || 'Erro desconhecido'
|
|
180
|
+
});
|
|
154
181
|
}
|
|
155
182
|
finally {
|
|
156
183
|
this.params = [];
|