ixc-orm 1.4.3 → 1.4.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/README.md CHANGED
@@ -6,8 +6,13 @@ Esta biblioteca não faz parte das bibliotecas oficiais da IXCsoft e foi desenvo
6
6
 
7
7
  ## 🚀 Novidades
8
8
 
9
- ### v1.4.1 - 14 de agosto de 2025
9
+ ### v1.4.4 - 15 de agosto de 2025
10
+ * **Melhorado:** Foi adicionado um método `find()` a classe `IXCClient`, para encontrar um registro pelo seu `id` de uma forma mais simples.
11
+
12
+ ### v1.4.3 - 15 de agosto de 2025
13
+ * **Melhorado:** Os métodos `get()`, `post()` e `put()` da classe `IXCClient`, a partir de agora sempre retornarão um objeto `IXCResponse`, indepedente da requisição falhar ou não.
10
14
 
15
+ ### v1.4.1 - 14 de agosto de 2025
11
16
  * **Corrigido:** Resolvido o bug de leitura das variáveis de ambiente no arquivo .env na pasta raiz.
12
17
  * **Novo:** Foram adicionados 3 dos 44 recursos da API do IXC: `get_boleto`, `liberacao_temporaria` e `desbloqueio_confianca`. (Futuramente novos recursos serão adicionados)
13
18
 
@@ -27,7 +27,16 @@ export default abstract class IXCClient {
27
27
  */
28
28
  orderBy(column: string, order: keyof typeof IXCSortOrder): IXCClient;
29
29
  /**
30
- * Envia uma solicitação GET para a API do IXC, com o header `ixcsoft` definico como `listar`
30
+ * Envia uma requisição GET para a API do IXC, com o header `ixcsoft` definico como `listar`\
31
+ * A `query` dessa requisição não será enviada para o IXC com o parâmetro `grid_param`\
32
+ * Ou seja, esta requisição executa uma busca simples, em vez do filtro de grid
33
+ *
34
+ * @param id O identificador numérico do registro que será buscado no IXC
35
+ * @returns Promise<IXCResponse>
36
+ */
37
+ find(id: any): Promise<IXCResponse>;
38
+ /**
39
+ * Envia uma requisição GET para a API do IXC, com o header `ixcsoft` definico como `listar`
31
40
  * Preenche o corpo da requisição com os dados passados pela função `where` no formado JSON
32
41
  *
33
42
  * @param pg O número da página que será solicitada ao IXC `padão = 1`
package/dist/IXCClient.js CHANGED
@@ -76,7 +76,57 @@ class IXCClient {
76
76
  return this;
77
77
  }
78
78
  /**
79
- * Envia uma solicitação GET para a API do IXC, com o header `ixcsoft` definico como `listar`
79
+ * Envia uma requisição GET para a API do IXC, com o header `ixcsoft` definico como `listar`\
80
+ * A `query` dessa requisição não será enviada para o IXC com o parâmetro `grid_param`\
81
+ * Ou seja, esta requisição executa uma busca simples, em vez do filtro de grid
82
+ *
83
+ * @param id O identificador numérico do registro que será buscado no IXC
84
+ * @returns Promise<IXCResponse>
85
+ */
86
+ find(id) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ var _a, _b;
89
+ const params = {
90
+ TB: 'id',
91
+ OP: '=',
92
+ P: id
93
+ };
94
+ const opts = {
95
+ page: 1,
96
+ rowsPerPage: 1,
97
+ };
98
+ const axios = (0, request_1.createAxiosInstance)('GET');
99
+ const data = (0, request_1.createRequestPayload)(this.table, params, opts);
100
+ try {
101
+ const response = yield axios.get(this.table, { data });
102
+ if (response.status === 200) {
103
+ return response.data;
104
+ }
105
+ return (0, response_1.createResponse)({
106
+ error: true,
107
+ message: (_a = response.data) === null || _a === void 0 ? void 0 : _a.message
108
+ });
109
+ }
110
+ catch (error) {
111
+ console.error(error);
112
+ return (0, response_1.createResponse)({
113
+ error: true,
114
+ message: ((_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText) || error.message || 'Erro desconhecido'
115
+ });
116
+ }
117
+ finally {
118
+ this.params = [];
119
+ this.options = {
120
+ page: 1,
121
+ rowsPerPage: 20,
122
+ sortName: 'id',
123
+ sortOrder: 'asc'
124
+ };
125
+ }
126
+ });
127
+ }
128
+ /**
129
+ * Envia uma requisição GET para a API do IXC, com o header `ixcsoft` definico como `listar`
80
130
  * Preenche o corpo da requisição com os dados passados pela função `where` no formado JSON
81
131
  *
82
132
  * @param pg O número da página que será solicitada ao IXC `padão = 1`
@@ -89,9 +139,9 @@ class IXCClient {
89
139
  const _c = this.options, { page, rowsPerPage } = _c, rest = __rest(_c, ["page", "rowsPerPage"]);
90
140
  const opts = Object.assign({ page: pg !== null && pg !== void 0 ? pg : page, rowsPerPage: rows !== null && rows !== void 0 ? rows : rowsPerPage }, rest);
91
141
  const axios = (0, request_1.createAxiosInstance)('GET');
92
- const payload = (0, request_1.createRequestPayload)(this.table, this.params, opts);
142
+ const data = (0, request_1.createRequestPayload)(this.table, this.params, opts);
93
143
  try {
94
- const response = yield axios.get(this.table, payload);
144
+ const response = yield axios.get(this.table, { data });
95
145
  if (response.status === 200) {
96
146
  return response.data;
97
147
  }
package/dist/request.d.ts CHANGED
@@ -1,16 +1,20 @@
1
- import { AxiosInstance, AxiosRequestConfig } from 'axios';
1
+ import { AxiosInstance } from 'axios';
2
2
  import { IXCOptions, IXCQuery, IXCRequest, IXCRequestMethods } from './types';
3
3
  /**
4
+ * Cria uma instância de um objeto AxiosInstance, pré-configurado com os cabeçalhos necessários
5
+ * para executar uma requisição para a API do IXC
4
6
  *
5
7
  * @param method GET | POST | PUT | DELETE
6
- * @returns A instância de um objeto do tipo AxiosInstance, pré-configurado com os cabeçalhos necessários
8
+ * @returns AxiosInstance
7
9
  */
8
10
  export declare function createAxiosInstance(method?: keyof typeof IXCRequestMethods): AxiosInstance;
9
11
  /**
12
+ * Cria um objeto `IXCRequest` configurado para ser utilizado como payload de uma requisição
13
+ * para a API do IXC
10
14
  *
11
15
  * @param table Nome da tabela do IXC onde será feita a busca, atualização, inserção ou remoção
12
16
  * @param params Parâmetros da busca (desconsiderados quando a ação for a de inserir novos registros)
13
17
  * @param options Parâmetros de formatação dos dados da responsta (página, ítens por página e ordenação)
14
- * @returns
18
+ * @returns IXCRequest
15
19
  */
16
- export declare function createRequestPayload(table: string, params: IXCQuery | IXCQuery[], options?: IXCOptions): AxiosRequestConfig<IXCRequest>;
20
+ export declare function createRequestPayload(table: string, params: IXCQuery | IXCQuery[], options?: IXCOptions): IXCRequest;
package/dist/request.js CHANGED
@@ -7,9 +7,11 @@ exports.createAxiosInstance = createAxiosInstance;
7
7
  exports.createRequestPayload = createRequestPayload;
8
8
  const axios_1 = __importDefault(require("axios"));
9
9
  /**
10
+ * Cria uma instância de um objeto AxiosInstance, pré-configurado com os cabeçalhos necessários
11
+ * para executar uma requisição para a API do IXC
10
12
  *
11
13
  * @param method GET | POST | PUT | DELETE
12
- * @returns A instância de um objeto do tipo AxiosInstance, pré-configurado com os cabeçalhos necessários
14
+ * @returns AxiosInstance
13
15
  */
14
16
  function createAxiosInstance(method = 'GET') {
15
17
  const host = process.env.IXC_HOST;
@@ -25,11 +27,13 @@ function createAxiosInstance(method = 'GET') {
25
27
  });
26
28
  }
27
29
  /**
30
+ * Cria um objeto `IXCRequest` configurado para ser utilizado como payload de uma requisição
31
+ * para a API do IXC
28
32
  *
29
33
  * @param table Nome da tabela do IXC onde será feita a busca, atualização, inserção ou remoção
30
34
  * @param params Parâmetros da busca (desconsiderados quando a ação for a de inserir novos registros)
31
35
  * @param options Parâmetros de formatação dos dados da responsta (página, ítens por página e ordenação)
32
- * @returns
36
+ * @returns IXCRequest
33
37
  */
34
38
  function createRequestPayload(table, params, options) {
35
39
  var _a, _b, _c, _d;
@@ -46,24 +50,24 @@ function createRequestPayload(table, params, options) {
46
50
  P: p.P
47
51
  });
48
52
  });
49
- return { data: {
50
- qtype: table,
51
- query: '',
52
- oper: '',
53
- page: page,
54
- rp: rowsPerPage,
55
- sortname: `${table}.${sortName}`,
56
- sortorder: sortOrder,
57
- grid_param: JSON.stringify(grid_param)
58
- } };
59
- }
60
- return { data: {
61
- qtype: `${table}.${params.TB}`,
62
- query: params.P,
63
- oper: params.OP || '=',
53
+ return {
54
+ qtype: table,
55
+ query: '',
56
+ oper: '',
64
57
  page: page,
65
58
  rp: rowsPerPage,
66
59
  sortname: `${table}.${sortName}`,
67
- sortorder: sortOrder
68
- } };
60
+ sortorder: sortOrder,
61
+ grid_param: JSON.stringify(grid_param)
62
+ };
63
+ }
64
+ return {
65
+ qtype: `${table}.${params.TB}`,
66
+ query: params.P,
67
+ oper: params.OP || '=',
68
+ page: page,
69
+ rp: rowsPerPage,
70
+ sortname: `${table}.${sortName}`,
71
+ sortorder: sortOrder
72
+ };
69
73
  }
package/dist/types.d.ts CHANGED
@@ -40,7 +40,7 @@ export interface IXCRequest {
40
40
  }
41
41
  export interface IXCResponse {
42
42
  error?: boolean | object;
43
- message?: string | null;
43
+ message?: string;
44
44
  id?: string | number;
45
45
  page: number | string;
46
46
  total: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ixc-orm",
3
- "version": "1.4.3",
3
+ "version": "1.4.4",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",