n8n-nodes-digitalsac 0.2.4 → 0.2.5

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.
@@ -94,12 +94,17 @@ class Digitalsac {
94
94
  case 'validateDate':
95
95
  url = '/typebot/validate/data';
96
96
  method = 'POST';
97
- body = JSON.parse(this.getNodeParameter('bodyData', i));
97
+ try {
98
+ body = JSON.parse(this.getNodeParameter('bodyData', i));
99
+ }
100
+ catch (e) {
101
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
102
+ }
98
103
  headers['Content-Type'] = 'application/json';
99
104
  options = {
100
105
  method,
101
106
  headers,
102
- body: JSON.stringify(body),
107
+ body,
103
108
  uri: `${baseUrl}${url}`,
104
109
  json: true,
105
110
  };
@@ -113,12 +118,17 @@ class Digitalsac {
113
118
  case 'transferQueue':
114
119
  url = '/typebot/transferir_para_fila';
115
120
  method = 'POST';
116
- body = JSON.parse(this.getNodeParameter('bodyData', i));
121
+ try {
122
+ body = JSON.parse(this.getNodeParameter('bodyData', i));
123
+ }
124
+ catch (e) {
125
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
126
+ }
117
127
  headers['Content-Type'] = 'application/json';
118
128
  options = {
119
129
  method,
120
130
  headers,
121
- body: JSON.stringify(body),
131
+ body,
122
132
  uri: `${baseUrl}${url}`,
123
133
  json: true,
124
134
  };
@@ -126,12 +136,17 @@ class Digitalsac {
126
136
  case 'transferAgent':
127
137
  url = '/typebot/transferir_para_atendente';
128
138
  method = 'POST';
129
- body = JSON.parse(this.getNodeParameter('bodyData', i));
139
+ try {
140
+ body = JSON.parse(this.getNodeParameter('bodyData', i));
141
+ }
142
+ catch (e) {
143
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
144
+ }
130
145
  headers['Content-Type'] = 'application/json';
131
146
  options = {
132
147
  method,
133
148
  headers,
134
- body: JSON.stringify(body),
149
+ body,
135
150
  uri: `${baseUrl}${url}`,
136
151
  json: true,
137
152
  };
@@ -139,12 +154,17 @@ class Digitalsac {
139
154
  case 'closeTicket':
140
155
  url = '/typebot/fechar_ticket';
141
156
  method = 'POST';
142
- body = JSON.parse(this.getNodeParameter('bodyData', i));
157
+ try {
158
+ body = JSON.parse(this.getNodeParameter('bodyData', i));
159
+ }
160
+ catch (e) {
161
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
162
+ }
143
163
  headers['Content-Type'] = 'application/json';
144
164
  options = {
145
165
  method,
146
166
  headers,
147
- body: JSON.stringify(body),
167
+ body,
148
168
  uri: `${baseUrl}${url}`,
149
169
  json: true,
150
170
  };
@@ -152,12 +172,21 @@ class Digitalsac {
152
172
  case 'sendMessage':
153
173
  url = `/v1/api/external/${param}`;
154
174
  method = 'POST';
155
- body = JSON.parse(this.getNodeParameter('bodyData', i));
175
+ try {
176
+ // Obter o JSON como string e converter para objeto
177
+ const bodyDataStr = this.getNodeParameter('bodyData', i);
178
+ // Remover espaços extras e quebras de linha
179
+ const cleanJson = bodyDataStr.replace(/\s+/g, ' ').trim();
180
+ body = JSON.parse(cleanJson);
181
+ }
182
+ catch (e) {
183
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
184
+ }
156
185
  headers['Content-Type'] = 'application/json';
157
186
  options = {
158
187
  method,
159
188
  headers,
160
- body: JSON.stringify(body),
189
+ body, // Enviar o objeto diretamente, sem JSON.stringify
161
190
  uri: `${baseUrl}${url}`,
162
191
  json: true,
163
192
  };
@@ -178,7 +207,7 @@ class Digitalsac {
178
207
  }
179
208
  catch (error) {
180
209
  if (error.response) {
181
- returnData.push({ json: { error: error.response.body } });
210
+ returnData.push({ json: { error: error.response.body || error.message } });
182
211
  }
183
212
  else {
184
213
  returnData.push({ json: { error: error.message } });
@@ -104,12 +104,16 @@ export class Digitalsac implements INodeType {
104
104
  case 'validateDate':
105
105
  url = '/typebot/validate/data';
106
106
  method = 'POST';
107
- body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
107
+ try {
108
+ body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
109
+ } catch (e) {
110
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
111
+ }
108
112
  headers['Content-Type'] = 'application/json';
109
113
  options = {
110
114
  method,
111
115
  headers,
112
- body: JSON.stringify(body),
116
+ body,
113
117
  uri: `${baseUrl}${url}`,
114
118
  json: true,
115
119
  };
@@ -123,12 +127,16 @@ export class Digitalsac implements INodeType {
123
127
  case 'transferQueue':
124
128
  url = '/typebot/transferir_para_fila';
125
129
  method = 'POST';
126
- body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
130
+ try {
131
+ body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
132
+ } catch (e) {
133
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
134
+ }
127
135
  headers['Content-Type'] = 'application/json';
128
136
  options = {
129
137
  method,
130
138
  headers,
131
- body: JSON.stringify(body),
139
+ body,
132
140
  uri: `${baseUrl}${url}`,
133
141
  json: true,
134
142
  };
@@ -136,12 +144,16 @@ export class Digitalsac implements INodeType {
136
144
  case 'transferAgent':
137
145
  url = '/typebot/transferir_para_atendente';
138
146
  method = 'POST';
139
- body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
147
+ try {
148
+ body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
149
+ } catch (e) {
150
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
151
+ }
140
152
  headers['Content-Type'] = 'application/json';
141
153
  options = {
142
154
  method,
143
155
  headers,
144
- body: JSON.stringify(body),
156
+ body,
145
157
  uri: `${baseUrl}${url}`,
146
158
  json: true,
147
159
  };
@@ -149,12 +161,16 @@ export class Digitalsac implements INodeType {
149
161
  case 'closeTicket':
150
162
  url = '/typebot/fechar_ticket';
151
163
  method = 'POST';
152
- body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
164
+ try {
165
+ body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
166
+ } catch (e) {
167
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
168
+ }
153
169
  headers['Content-Type'] = 'application/json';
154
170
  options = {
155
171
  method,
156
172
  headers,
157
- body: JSON.stringify(body),
173
+ body,
158
174
  uri: `${baseUrl}${url}`,
159
175
  json: true,
160
176
  };
@@ -162,12 +178,21 @@ export class Digitalsac implements INodeType {
162
178
  case 'sendMessage':
163
179
  url = `/v1/api/external/${param}`;
164
180
  method = 'POST';
165
- body = JSON.parse(this.getNodeParameter('bodyData', i) as string);
181
+ try {
182
+ // Obter o JSON como string e converter para objeto
183
+ const bodyDataStr = this.getNodeParameter('bodyData', i) as string;
184
+ // Remover espaços extras e quebras de linha
185
+ const cleanJson = bodyDataStr.replace(/\s+/g, ' ').trim();
186
+ body = JSON.parse(cleanJson);
187
+ } catch (e) {
188
+ throw new Error('Formato de JSON inválido para Dados (JSON)');
189
+ }
190
+
166
191
  headers['Content-Type'] = 'application/json';
167
192
  options = {
168
193
  method,
169
194
  headers,
170
- body: JSON.stringify(body),
195
+ body, // Enviar o objeto diretamente, sem JSON.stringify
171
196
  uri: `${baseUrl}${url}`,
172
197
  json: true,
173
198
  };
@@ -189,7 +214,7 @@ export class Digitalsac implements INodeType {
189
214
  returnData.push({ json: responseData });
190
215
  } catch (error: any) {
191
216
  if (error.response) {
192
- returnData.push({ json: { error: error.response.body } });
217
+ returnData.push({ json: { error: error.response.body || error.message } });
193
218
  } else {
194
219
  returnData.push({ json: { error: error.message } });
195
220
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-digitalsac",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "Izing Pro Digitalsac",
5
5
  "keywords": [
6
6
  "n8n",