n8n-nodes-hudu 1.2.5 → 1.2.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/README.md +8 -0
- package/dist/nodes/Hudu/Hudu.node.js.map +1 -1
- package/dist/nodes/Hudu/Hudu.node.ts +2 -0
- package/dist/nodes/Hudu/resources/articles/articles.handler.js +9 -3
- package/dist/nodes/Hudu/resources/articles/articles.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/articles/articles.handler.ts +16 -5
- package/dist/nodes/Hudu/resources/assets/assets.handler.js +34 -61
- package/dist/nodes/Hudu/resources/assets/assets.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/assets/assets.handler.ts +86 -88
- package/dist/nodes/Hudu/resources/companies/companies.handler.js +16 -10
- package/dist/nodes/Hudu/resources/companies/companies.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/companies/companies.handler.ts +50 -11
- package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.js +4 -4
- package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.ts +3 -2
- package/dist/nodes/Hudu/resources/networks/networks.handler.js +4 -4
- package/dist/nodes/Hudu/resources/networks/networks.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/networks/networks.handler.ts +8 -8
- package/dist/nodes/Hudu/resources/procedures/procedures.handler.js +65 -25
- package/dist/nodes/Hudu/resources/procedures/procedures.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/procedures/procedures.handler.ts +110 -36
- package/dist/nodes/Hudu/resources/procedures/procedures.types.ts +2 -0
- package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.js +4 -4
- package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.ts +3 -2
- package/dist/nodes/Hudu/resources/websites/websites.handler.js +5 -5
- package/dist/nodes/Hudu/resources/websites/websites.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/websites/websites.handler.ts +8 -4
- package/dist/nodes/Hudu/utils/debugConfig.js +14 -14
- package/dist/nodes/Hudu/utils/debugConfig.js.map +1 -1
- package/dist/nodes/Hudu/utils/debugConfig.ts +14 -14
- package/dist/nodes/Hudu/utils/index.js +1 -0
- package/dist/nodes/Hudu/utils/index.js.map +1 -1
- package/dist/nodes/Hudu/utils/index.ts +3 -1
- package/dist/nodes/Hudu/utils/validation.js +24 -0
- package/dist/nodes/Hudu/utils/validation.js.map +1 -0
- package/dist/nodes/Hudu/utils/validation.ts +45 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,6 +12,14 @@ This node was built against Hudu v2.34.4. Future versions of Hudu may not be 100
|
|
|
12
12
|
|
|
13
13
|
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
14
14
|
|
|
15
|
+
## Important Update Note
|
|
16
|
+
|
|
17
|
+
When updating between versions, make sure to restart your n8n instance after the update. UI changes and new features are often only picked up after a restart. The recommended update process is:
|
|
18
|
+
|
|
19
|
+
1. Update the node (`npm install n8n-nodes-hudu@latest`)
|
|
20
|
+
2. Restart n8n instance
|
|
21
|
+
3. Clear browser cache if needed
|
|
22
|
+
|
|
15
23
|
## Supported Resources & Operations
|
|
16
24
|
|
|
17
25
|
### Activity Logs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hudu.node.js","sourceRoot":"","sources":["../../../../src/nodes/Hudu/Hudu.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,+CAAkD;AAClD,qDAA6D;AAG7D,6DAA+C;AAC/C,wDAA4D;AAG5D,uDAAyC;AAGzC,iDAAiD;AACjD,yDAAyD;AACzD,iEAAiH;AACjH,mDAAmD;AAEnD,MAAa,IAAI;IAAjB;QACE,gBAAW,GAAyB;YAClC,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Hudu.node.js","sourceRoot":"","sources":["../../../../src/nodes/Hudu/Hudu.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,8 @@ export class Hudu implements INodeType {
|
|
|
35
35
|
},
|
|
36
36
|
inputs: ['main'],
|
|
37
37
|
outputs: ['main'],
|
|
38
|
+
// TODO: Enable this when we are ready to configure use of Hudu node as a tool for the n8n AI Agent
|
|
39
|
+
// usableAsTool: true,
|
|
38
40
|
credentials: [
|
|
39
41
|
{
|
|
40
42
|
name: 'huduApi',
|
|
@@ -65,6 +65,9 @@ async function handleArticlesOperation(operation, i) {
|
|
|
65
65
|
const returnAll = this.getNodeParameter('returnAll', i);
|
|
66
66
|
const filters = this.getNodeParameter('filters', i);
|
|
67
67
|
const limit = this.getNodeParameter('limit', i, 25);
|
|
68
|
+
if (filters.company_id) {
|
|
69
|
+
filters.company_id = (0, utils_1.validateCompanyId)(filters.company_id, this.getNode(), 'Company ID');
|
|
70
|
+
}
|
|
68
71
|
const qs = {
|
|
69
72
|
...filters,
|
|
70
73
|
};
|
|
@@ -166,9 +169,9 @@ async function handleArticlesOperation(operation, i) {
|
|
|
166
169
|
combinedLogs.sort((a, b) => {
|
|
167
170
|
const dateA = new Date(a.created_at).getTime();
|
|
168
171
|
const dateB = new Date(b.created_at).getTime();
|
|
169
|
-
return
|
|
172
|
+
return dateA - dateB;
|
|
170
173
|
});
|
|
171
|
-
responseData = combinedLogs.map((activity) => {
|
|
174
|
+
responseData = combinedLogs.map((activity, index) => {
|
|
172
175
|
let articleContent = '';
|
|
173
176
|
try {
|
|
174
177
|
const detailsObj = JSON.parse(activity.details);
|
|
@@ -182,7 +185,10 @@ async function handleArticlesOperation(operation, i) {
|
|
|
182
185
|
created_at: activity.created_at,
|
|
183
186
|
user_name: activity.user_name,
|
|
184
187
|
article_html: articleContent,
|
|
185
|
-
|
|
188
|
+
seconds_since_last_revision: combinedLogs[index - 1]
|
|
189
|
+
? Math.floor((new Date(activity.created_at).getTime() -
|
|
190
|
+
new Date(combinedLogs[index - 1].created_at).getTime()) / 1000)
|
|
191
|
+
: null,
|
|
186
192
|
};
|
|
187
193
|
});
|
|
188
194
|
if (debugConfig_1.DEBUG_CONFIG.RESOURCE_PROCESSING) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articles.handler.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/resources/articles/articles.handler.ts"],"names":[],"mappings":";;;AACA,uDAOgC;AAEhC,yDAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"articles.handler.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/resources/articles/articles.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from '../../utils/operations';
|
|
10
10
|
import type { ArticlesOperation } from './articles.types';
|
|
11
11
|
import { DEBUG_CONFIG, debugLog } from '../../utils/debugConfig';
|
|
12
|
-
import { processDateRange, type DateRangePreset } from '../../utils';
|
|
12
|
+
import { processDateRange, type DateRangePreset, validateCompanyId } from '../../utils';
|
|
13
13
|
|
|
14
14
|
export async function handleArticlesOperation(
|
|
15
15
|
this: IExecuteFunctions,
|
|
@@ -95,6 +95,12 @@ export async function handleArticlesOperation(
|
|
|
95
95
|
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
|
96
96
|
const filters = this.getNodeParameter('filters', i) as IDataObject;
|
|
97
97
|
const limit = this.getNodeParameter('limit', i, 25) as number;
|
|
98
|
+
|
|
99
|
+
// Validate company_id if provided in filters
|
|
100
|
+
if (filters.company_id) {
|
|
101
|
+
filters.company_id = validateCompanyId(filters.company_id, this.getNode(), 'Company ID');
|
|
102
|
+
}
|
|
103
|
+
|
|
98
104
|
const qs: IDataObject = {
|
|
99
105
|
...filters,
|
|
100
106
|
};
|
|
@@ -257,15 +263,15 @@ export async function handleArticlesOperation(
|
|
|
257
263
|
// Combine and transform responses
|
|
258
264
|
const combinedLogs = [...createdLogs, ...updatedLogs];
|
|
259
265
|
|
|
260
|
-
// Sort by created_at in
|
|
266
|
+
// Sort by created_at in ascending order (oldest first)
|
|
261
267
|
combinedLogs.sort((a, b) => {
|
|
262
268
|
const dateA = new Date(a.created_at as string).getTime();
|
|
263
269
|
const dateB = new Date(b.created_at as string).getTime();
|
|
264
|
-
return
|
|
270
|
+
return dateA - dateB;
|
|
265
271
|
});
|
|
266
272
|
|
|
267
273
|
// Transform to required format
|
|
268
|
-
responseData = combinedLogs.map((activity) => {
|
|
274
|
+
responseData = combinedLogs.map((activity, index) => {
|
|
269
275
|
let articleContent = '';
|
|
270
276
|
try {
|
|
271
277
|
const detailsObj = JSON.parse(activity.details as string);
|
|
@@ -280,7 +286,12 @@ export async function handleArticlesOperation(
|
|
|
280
286
|
created_at: activity.created_at,
|
|
281
287
|
user_name: activity.user_name,
|
|
282
288
|
article_html: articleContent,
|
|
283
|
-
|
|
289
|
+
seconds_since_last_revision: combinedLogs[index - 1]
|
|
290
|
+
? Math.floor(
|
|
291
|
+
(new Date(activity.created_at as string).getTime() -
|
|
292
|
+
new Date(combinedLogs[index - 1].created_at as string).getTime()) / 1000
|
|
293
|
+
)
|
|
294
|
+
: null,
|
|
284
295
|
};
|
|
285
296
|
});
|
|
286
297
|
|
|
@@ -4,39 +4,35 @@ exports.handleAssetsOperation = void 0;
|
|
|
4
4
|
const index_1 = require("../../utils/index");
|
|
5
5
|
const operations_1 = require("../../utils/operations");
|
|
6
6
|
async function handleAssetsOperation(operation, i) {
|
|
7
|
-
const resourceEndpoint = '/
|
|
8
|
-
let responseData
|
|
7
|
+
const resourceEndpoint = '/companies';
|
|
8
|
+
let responseData;
|
|
9
9
|
switch (operation) {
|
|
10
10
|
case 'create': {
|
|
11
|
-
const companyId = this.getNodeParameter('company_id', i);
|
|
11
|
+
const companyId = (0, index_1.validateCompanyId)(this.getNodeParameter('company_id', i), this.getNode(), 'Company ID');
|
|
12
12
|
const name = this.getNodeParameter('name', i);
|
|
13
|
-
const
|
|
13
|
+
const assetLayoutId = this.getNodeParameter('asset_layout_id', i);
|
|
14
14
|
const additionalFields = this.getNodeParameter('additionalFields', i);
|
|
15
15
|
const body = {
|
|
16
16
|
name,
|
|
17
|
-
asset_layout_id,
|
|
17
|
+
asset_layout_id: assetLayoutId,
|
|
18
|
+
...additionalFields,
|
|
18
19
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const { customFields, ...rest } = additionalFields;
|
|
27
|
-
const customFieldsArray = customFields.field;
|
|
28
|
-
body.custom_fields = customFieldsArray.map((field) => ({
|
|
29
|
-
[field.label]: field.value,
|
|
30
|
-
}));
|
|
31
|
-
Object.assign(body, rest);
|
|
32
|
-
}
|
|
33
|
-
responseData = await operations_1.handleCreateOperation.call(this, `/companies/${companyId}/assets`, { asset: body });
|
|
20
|
+
responseData = await operations_1.handleCreateOperation.call(this, `${resourceEndpoint}/${companyId}/assets`, { asset: body });
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
case 'get': {
|
|
24
|
+
const companyId = (0, index_1.validateCompanyId)(this.getNodeParameter('company_id', i), this.getNode(), 'Company ID');
|
|
25
|
+
const assetId = this.getNodeParameter('asset_id', i);
|
|
26
|
+
responseData = await operations_1.handleGetOperation.call(this, `${resourceEndpoint}/${companyId}/assets`, assetId);
|
|
34
27
|
break;
|
|
35
28
|
}
|
|
36
29
|
case 'getAll': {
|
|
37
30
|
const returnAll = this.getNodeParameter('returnAll', i);
|
|
38
31
|
const filters = this.getNodeParameter('filters', i);
|
|
39
32
|
const limit = this.getNodeParameter('limit', i, 25);
|
|
33
|
+
if (filters.company_id) {
|
|
34
|
+
filters.company_id = (0, index_1.validateCompanyId)(filters.company_id, this.getNode(), 'Company ID');
|
|
35
|
+
}
|
|
40
36
|
const qs = {
|
|
41
37
|
...filters,
|
|
42
38
|
};
|
|
@@ -56,58 +52,35 @@ async function handleAssetsOperation(operation, i) {
|
|
|
56
52
|
qs.updated_at = filters.updated_at;
|
|
57
53
|
}
|
|
58
54
|
}
|
|
59
|
-
responseData = await operations_1.handleGetAllOperation.call(this,
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
case 'get': {
|
|
63
|
-
const assetId = this.getNodeParameter('id', i);
|
|
64
|
-
const companyId = this.getNodeParameter('company_id', i);
|
|
65
|
-
responseData = await operations_1.handleGetOperation.call(this, `/companies/${companyId}/assets`, assetId);
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
case 'delete': {
|
|
69
|
-
const assetId = this.getNodeParameter('id', i);
|
|
70
|
-
const companyId = this.getNodeParameter('company_id', i);
|
|
71
|
-
responseData = await operations_1.handleDeleteOperation.call(this, resourceEndpoint, assetId, companyId);
|
|
55
|
+
responseData = await operations_1.handleGetAllOperation.call(this, '/assets', 'assets', qs, returnAll, limit);
|
|
72
56
|
break;
|
|
73
57
|
}
|
|
74
58
|
case 'update': {
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
const
|
|
78
|
-
const assetBody = {
|
|
79
|
-
company_id: Number.parseInt(companyId, 10),
|
|
80
|
-
};
|
|
81
|
-
const primaryFields = ['primary_serial', 'primary_mail', 'primary_model', 'primary_manufacturer'];
|
|
82
|
-
for (const field of primaryFields) {
|
|
83
|
-
if (additionalFields[field]) {
|
|
84
|
-
assetBody[field] = additionalFields[field];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (additionalFields.customFields) {
|
|
88
|
-
const { customFields, ...rest } = additionalFields;
|
|
89
|
-
const customFieldsArray = customFields.field;
|
|
90
|
-
assetBody.custom_fields = customFieldsArray.map((field) => ({
|
|
91
|
-
[field.label]: field.value,
|
|
92
|
-
}));
|
|
93
|
-
Object.assign(assetBody, rest);
|
|
94
|
-
}
|
|
59
|
+
const companyId = (0, index_1.validateCompanyId)(this.getNodeParameter('company_id', i), this.getNode(), 'Company ID');
|
|
60
|
+
const assetId = this.getNodeParameter('asset_id', i);
|
|
61
|
+
const updateFields = this.getNodeParameter('updateFields', i);
|
|
95
62
|
const body = {
|
|
96
|
-
asset:
|
|
63
|
+
asset: updateFields,
|
|
97
64
|
};
|
|
98
|
-
responseData = await operations_1.handleUpdateOperation.call(this,
|
|
65
|
+
responseData = await operations_1.handleUpdateOperation.call(this, `${resourceEndpoint}/${companyId}/assets`, assetId, body);
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case 'delete': {
|
|
69
|
+
const companyId = (0, index_1.validateCompanyId)(this.getNodeParameter('company_id', i), this.getNode(), 'Company ID');
|
|
70
|
+
const assetId = this.getNodeParameter('asset_id', i);
|
|
71
|
+
responseData = await operations_1.handleDeleteOperation.call(this, `${resourceEndpoint}/${companyId}/assets`, assetId);
|
|
99
72
|
break;
|
|
100
73
|
}
|
|
101
74
|
case 'archive': {
|
|
102
|
-
const
|
|
103
|
-
const
|
|
104
|
-
responseData = await operations_1.handleArchiveOperation.call(this, resourceEndpoint
|
|
75
|
+
const companyId = (0, index_1.validateCompanyId)(this.getNodeParameter('company_id', i), this.getNode(), 'Company ID');
|
|
76
|
+
const assetId = this.getNodeParameter('asset_id', i);
|
|
77
|
+
responseData = await operations_1.handleArchiveOperation.call(this, `${resourceEndpoint}/${companyId}/assets`, assetId, true);
|
|
105
78
|
break;
|
|
106
79
|
}
|
|
107
80
|
case 'unarchive': {
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
responseData = await operations_1.handleArchiveOperation.call(this, resourceEndpoint
|
|
81
|
+
const companyId = (0, index_1.validateCompanyId)(this.getNodeParameter('company_id', i), this.getNode(), 'Company ID');
|
|
82
|
+
const assetId = this.getNodeParameter('asset_id', i);
|
|
83
|
+
responseData = await operations_1.handleArchiveOperation.call(this, `${resourceEndpoint}/${companyId}/assets`, assetId, false);
|
|
111
84
|
break;
|
|
112
85
|
}
|
|
113
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.handler.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/resources/assets/assets.handler.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"assets.handler.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/resources/assets/assets.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
|
|
2
|
-
import { processDateRange } from '../../utils/index';
|
|
2
|
+
import { processDateRange, validateCompanyId } from '../../utils/index';
|
|
3
3
|
import {
|
|
4
4
|
handleGetAllOperation,
|
|
5
5
|
handleGetOperation,
|
|
@@ -16,67 +16,71 @@ export async function handleAssetsOperation(
|
|
|
16
16
|
operation: AssetsOperations,
|
|
17
17
|
i: number,
|
|
18
18
|
): Promise<IDataObject | IDataObject[]> {
|
|
19
|
-
const resourceEndpoint = '/
|
|
20
|
-
let responseData: IDataObject | IDataObject[]
|
|
19
|
+
const resourceEndpoint = '/companies';
|
|
20
|
+
let responseData: IDataObject | IDataObject[];
|
|
21
21
|
|
|
22
22
|
switch (operation) {
|
|
23
23
|
case 'create': {
|
|
24
|
-
const companyId =
|
|
24
|
+
const companyId = validateCompanyId(
|
|
25
|
+
this.getNodeParameter('company_id', i),
|
|
26
|
+
this.getNode(),
|
|
27
|
+
'Company ID'
|
|
28
|
+
);
|
|
25
29
|
const name = this.getNodeParameter('name', i) as string;
|
|
26
|
-
const
|
|
30
|
+
const assetLayoutId = this.getNodeParameter('asset_layout_id', i) as number;
|
|
27
31
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
|
28
32
|
|
|
29
|
-
// Define base body with required fields
|
|
30
33
|
const body: IDataObject = {
|
|
31
34
|
name,
|
|
32
|
-
asset_layout_id,
|
|
35
|
+
asset_layout_id: assetLayoutId,
|
|
36
|
+
...additionalFields,
|
|
33
37
|
};
|
|
34
38
|
|
|
35
|
-
// Handle primary fields if present
|
|
36
|
-
const primaryFields = ['primary_serial', 'primary_mail', 'primary_model', 'primary_manufacturer'];
|
|
37
|
-
for (const field of primaryFields) {
|
|
38
|
-
if (additionalFields[field]) {
|
|
39
|
-
body[field] = additionalFields[field];
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (additionalFields.customFields) {
|
|
44
|
-
const { customFields, ...rest } = additionalFields;
|
|
45
|
-
const customFieldsArray = (customFields as IDataObject).field as IDataObject[];
|
|
46
|
-
|
|
47
|
-
// Transform custom fields into the format expected by the API
|
|
48
|
-
body.custom_fields = customFieldsArray.map((field: IDataObject) => ({
|
|
49
|
-
[field.label as string]: field.value,
|
|
50
|
-
}));
|
|
51
|
-
|
|
52
|
-
// Add any remaining non-custom fields
|
|
53
|
-
Object.assign(body, rest);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Special case: assets are created under a company
|
|
57
39
|
responseData = await handleCreateOperation.call(
|
|
58
40
|
this,
|
|
59
|
-
|
|
41
|
+
`${resourceEndpoint}/${companyId}/assets`,
|
|
60
42
|
{ asset: body },
|
|
61
43
|
);
|
|
62
44
|
break;
|
|
63
45
|
}
|
|
64
46
|
|
|
47
|
+
case 'get': {
|
|
48
|
+
const companyId = validateCompanyId(
|
|
49
|
+
this.getNodeParameter('company_id', i),
|
|
50
|
+
this.getNode(),
|
|
51
|
+
'Company ID'
|
|
52
|
+
);
|
|
53
|
+
const assetId = this.getNodeParameter('asset_id', i) as string;
|
|
54
|
+
responseData = await handleGetOperation.call(
|
|
55
|
+
this,
|
|
56
|
+
`${resourceEndpoint}/${companyId}/assets`,
|
|
57
|
+
assetId,
|
|
58
|
+
);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
|
|
65
62
|
case 'getAll': {
|
|
66
63
|
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
|
67
64
|
const filters = this.getNodeParameter('filters', i) as IDataObject;
|
|
68
65
|
const limit = this.getNodeParameter('limit', i, 25) as number;
|
|
66
|
+
|
|
67
|
+
// Validate company_id if provided in filters
|
|
68
|
+
if (filters.company_id) {
|
|
69
|
+
filters.company_id = validateCompanyId(
|
|
70
|
+
filters.company_id,
|
|
71
|
+
this.getNode(),
|
|
72
|
+
'Company ID'
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
|
|
69
76
|
const qs: IDataObject = {
|
|
70
77
|
...filters,
|
|
71
78
|
};
|
|
72
79
|
|
|
73
|
-
// Process date range if present
|
|
74
80
|
if (filters.updated_at) {
|
|
75
81
|
const updatedAtFilter = filters.updated_at as IDataObject;
|
|
76
|
-
|
|
77
82
|
if (updatedAtFilter.range) {
|
|
78
83
|
const rangeObj = updatedAtFilter.range as IDataObject;
|
|
79
|
-
|
|
80
84
|
filters.updated_at = processDateRange({
|
|
81
85
|
range: {
|
|
82
86
|
mode: rangeObj.mode as 'exact' | 'range' | 'preset',
|
|
@@ -92,7 +96,7 @@ export async function handleAssetsOperation(
|
|
|
92
96
|
|
|
93
97
|
responseData = await handleGetAllOperation.call(
|
|
94
98
|
this,
|
|
95
|
-
|
|
99
|
+
'/assets',
|
|
96
100
|
'assets',
|
|
97
101
|
qs,
|
|
98
102
|
returnAll,
|
|
@@ -101,78 +105,72 @@ export async function handleAssetsOperation(
|
|
|
101
105
|
break;
|
|
102
106
|
}
|
|
103
107
|
|
|
104
|
-
case 'get': {
|
|
105
|
-
const assetId = this.getNodeParameter('id', i) as string;
|
|
106
|
-
const companyId = this.getNodeParameter('company_id', i) as string;
|
|
107
|
-
responseData = await handleGetOperation.call(
|
|
108
|
-
this,
|
|
109
|
-
`/companies/${companyId}/assets`,
|
|
110
|
-
assetId,
|
|
111
|
-
);
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
case 'delete': {
|
|
116
|
-
const assetId = this.getNodeParameter('id', i) as string;
|
|
117
|
-
const companyId = this.getNodeParameter('company_id', i) as string;
|
|
118
|
-
responseData = await handleDeleteOperation.call(this, resourceEndpoint, assetId, companyId);
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
108
|
case 'update': {
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
// Handle primary fields if present
|
|
132
|
-
const primaryFields = ['primary_serial', 'primary_mail', 'primary_model', 'primary_manufacturer'];
|
|
133
|
-
for (const field of primaryFields) {
|
|
134
|
-
if (additionalFields[field]) {
|
|
135
|
-
assetBody[field] = additionalFields[field];
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
if (additionalFields.customFields) {
|
|
140
|
-
const { customFields, ...rest } = additionalFields;
|
|
141
|
-
const customFieldsArray = (customFields as IDataObject).field as IDataObject[];
|
|
142
|
-
|
|
143
|
-
// Transform custom fields into the format expected by the API
|
|
144
|
-
assetBody.custom_fields = customFieldsArray.map((field: IDataObject) => ({
|
|
145
|
-
[field.label as string]: field.value,
|
|
146
|
-
}));
|
|
147
|
-
|
|
148
|
-
// Add any remaining non-custom fields
|
|
149
|
-
Object.assign(assetBody, rest);
|
|
150
|
-
}
|
|
109
|
+
const companyId = validateCompanyId(
|
|
110
|
+
this.getNodeParameter('company_id', i),
|
|
111
|
+
this.getNode(),
|
|
112
|
+
'Company ID'
|
|
113
|
+
);
|
|
114
|
+
const assetId = this.getNodeParameter('asset_id', i) as string;
|
|
115
|
+
const updateFields = this.getNodeParameter('updateFields', i) as IDataObject;
|
|
151
116
|
|
|
152
117
|
const body: IDataObject = {
|
|
153
|
-
asset:
|
|
118
|
+
asset: updateFields,
|
|
154
119
|
};
|
|
155
120
|
|
|
156
121
|
responseData = await handleUpdateOperation.call(
|
|
157
122
|
this,
|
|
158
|
-
|
|
123
|
+
`${resourceEndpoint}/${companyId}/assets`,
|
|
159
124
|
assetId,
|
|
160
125
|
body,
|
|
161
126
|
);
|
|
162
127
|
break;
|
|
163
128
|
}
|
|
164
129
|
|
|
130
|
+
case 'delete': {
|
|
131
|
+
const companyId = validateCompanyId(
|
|
132
|
+
this.getNodeParameter('company_id', i),
|
|
133
|
+
this.getNode(),
|
|
134
|
+
'Company ID'
|
|
135
|
+
);
|
|
136
|
+
const assetId = this.getNodeParameter('asset_id', i) as string;
|
|
137
|
+
responseData = await handleDeleteOperation.call(
|
|
138
|
+
this,
|
|
139
|
+
`${resourceEndpoint}/${companyId}/assets`,
|
|
140
|
+
assetId,
|
|
141
|
+
);
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
|
|
165
145
|
case 'archive': {
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
146
|
+
const companyId = validateCompanyId(
|
|
147
|
+
this.getNodeParameter('company_id', i),
|
|
148
|
+
this.getNode(),
|
|
149
|
+
'Company ID'
|
|
150
|
+
);
|
|
151
|
+
const assetId = this.getNodeParameter('asset_id', i) as string;
|
|
152
|
+
responseData = await handleArchiveOperation.call(
|
|
153
|
+
this,
|
|
154
|
+
`${resourceEndpoint}/${companyId}/assets`,
|
|
155
|
+
assetId,
|
|
156
|
+
true,
|
|
157
|
+
);
|
|
169
158
|
break;
|
|
170
159
|
}
|
|
171
160
|
|
|
172
161
|
case 'unarchive': {
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
162
|
+
const companyId = validateCompanyId(
|
|
163
|
+
this.getNodeParameter('company_id', i),
|
|
164
|
+
this.getNode(),
|
|
165
|
+
'Company ID'
|
|
166
|
+
);
|
|
167
|
+
const assetId = this.getNodeParameter('asset_id', i) as string;
|
|
168
|
+
responseData = await handleArchiveOperation.call(
|
|
169
|
+
this,
|
|
170
|
+
`${resourceEndpoint}/${companyId}/assets`,
|
|
171
|
+
assetId,
|
|
172
|
+
false,
|
|
173
|
+
);
|
|
176
174
|
break;
|
|
177
175
|
}
|
|
178
176
|
}
|