n8n-nodes-getcourse 0.1.0
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.md +38 -0
- package/README.md +359 -0
- package/dist/credentials/GetCourseApi.credentials.d.ts +10 -0
- package/dist/credentials/GetCourseApi.credentials.js +58 -0
- package/dist/credentials/GetCourseApi.credentials.js.map +1 -0
- package/dist/credentials/GetCourseTechApi.credentials.d.ts +11 -0
- package/dist/credentials/GetCourseTechApi.credentials.js +63 -0
- package/dist/credentials/GetCourseTechApi.credentials.js.map +1 -0
- package/dist/credentials/accountAddress.d.ts +11 -0
- package/dist/credentials/accountAddress.js +116 -0
- package/dist/credentials/accountAddress.js.map +1 -0
- package/dist/icons/getcourse.dark.svg +15 -0
- package/dist/icons/getcourse.svg +11 -0
- package/dist/nodes/GetCourse/GetCourse.node.d.ts +9 -0
- package/dist/nodes/GetCourse/GetCourse.node.js +48 -0
- package/dist/nodes/GetCourse/GetCourse.node.js.map +1 -0
- package/dist/nodes/GetCourse/GetCourse.node.json +40 -0
- package/dist/nodes/GetCourse/v1/actions/call/index.d.ts +3 -0
- package/dist/nodes/GetCourse/v1/actions/call/index.js +98 -0
- package/dist/nodes/GetCourse/v1/actions/call/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/deal/description.d.ts +2 -0
- package/dist/nodes/GetCourse/v1/actions/deal/description.js +261 -0
- package/dist/nodes/GetCourse/v1/actions/deal/description.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/deal/execute.d.ts +2 -0
- package/dist/nodes/GetCourse/v1/actions/deal/execute.js +181 -0
- package/dist/nodes/GetCourse/v1/actions/deal/execute.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/deal/index.d.ts +2 -0
- package/dist/nodes/GetCourse/v1/actions/deal/index.js +8 -0
- package/dist/nodes/GetCourse/v1/actions/deal/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/dialog/index.d.ts +3 -0
- package/dist/nodes/GetCourse/v1/actions/dialog/index.js +262 -0
- package/dist/nodes/GetCourse/v1/actions/dialog/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/helpdesk/index.d.ts +3 -0
- package/dist/nodes/GetCourse/v1/actions/helpdesk/index.js +305 -0
- package/dist/nodes/GetCourse/v1/actions/helpdesk/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/index.d.ts +5 -0
- package/dist/nodes/GetCourse/v1/actions/index.js +119 -0
- package/dist/nodes/GetCourse/v1/actions/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/lesson/index.d.ts +3 -0
- package/dist/nodes/GetCourse/v1/actions/lesson/index.js +180 -0
- package/dist/nodes/GetCourse/v1/actions/lesson/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/offer/index.d.ts +3 -0
- package/dist/nodes/GetCourse/v1/actions/offer/index.js +98 -0
- package/dist/nodes/GetCourse/v1/actions/offer/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/school/index.d.ts +3 -0
- package/dist/nodes/GetCourse/v1/actions/school/index.js +139 -0
- package/dist/nodes/GetCourse/v1/actions/school/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/user/description.d.ts +2 -0
- package/dist/nodes/GetCourse/v1/actions/user/description.js +499 -0
- package/dist/nodes/GetCourse/v1/actions/user/description.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/user/execute.d.ts +2 -0
- package/dist/nodes/GetCourse/v1/actions/user/execute.js +270 -0
- package/dist/nodes/GetCourse/v1/actions/user/execute.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/user/index.d.ts +2 -0
- package/dist/nodes/GetCourse/v1/actions/user/index.js +8 -0
- package/dist/nodes/GetCourse/v1/actions/user/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/webhook/index.d.ts +4 -0
- package/dist/nodes/GetCourse/v1/actions/webhook/index.js +179 -0
- package/dist/nodes/GetCourse/v1/actions/webhook/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/actions/webinar/index.d.ts +3 -0
- package/dist/nodes/GetCourse/v1/actions/webinar/index.js +376 -0
- package/dist/nodes/GetCourse/v1/actions/webinar/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/descriptions/common.d.ts +7 -0
- package/dist/nodes/GetCourse/v1/descriptions/common.js +142 -0
- package/dist/nodes/GetCourse/v1/descriptions/common.js.map +1 -0
- package/dist/nodes/GetCourse/v1/helpers/errors.d.ts +11 -0
- package/dist/nodes/GetCourse/v1/helpers/errors.js +90 -0
- package/dist/nodes/GetCourse/v1/helpers/errors.js.map +1 -0
- package/dist/nodes/GetCourse/v1/helpers/request.d.ts +7 -0
- package/dist/nodes/GetCourse/v1/helpers/request.js +79 -0
- package/dist/nodes/GetCourse/v1/helpers/request.js.map +1 -0
- package/dist/nodes/GetCourse/v1/methods/index.d.ts +2 -0
- package/dist/nodes/GetCourse/v1/methods/index.js +39 -0
- package/dist/nodes/GetCourse/v1/methods/index.js.map +1 -0
- package/dist/nodes/GetCourse/v1/methods/loadOptions.d.ts +7 -0
- package/dist/nodes/GetCourse/v1/methods/loadOptions.js +76 -0
- package/dist/nodes/GetCourse/v1/methods/loadOptions.js.map +1 -0
- package/dist/nodes/GetCourse/v1/transport/index.d.ts +18 -0
- package/dist/nodes/GetCourse/v1/transport/index.js +165 -0
- package/dist/nodes/GetCourse/v1/transport/index.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/GetCourseLegacy.node.d.ts +9 -0
- package/dist/nodes/GetCourseLegacy/GetCourseLegacy.node.js +48 -0
- package/dist/nodes/GetCourseLegacy/GetCourseLegacy.node.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/GetCourseLegacy.node.json +35 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/description.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/description.js +287 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/description.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/execute.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/execute.js +150 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/execute.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/index.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/index.js +8 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/deal/index.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/description.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/description.js +487 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/description.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/execute.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/execute.js +252 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/execute.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/index.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/index.js +8 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/export/index.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/field/index.d.ts +3 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/field/index.js +61 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/field/index.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/group/index.d.ts +3 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/group/index.js +42 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/group/index.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/index.d.ts +5 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/index.js +84 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/index.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/description.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/description.js +87 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/description.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/execute.d.ts +5 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/execute.js +129 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/execute.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/index.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/index.js +8 -0
- package/dist/nodes/GetCourseLegacy/v1/actions/user/index.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/descriptions/common.d.ts +14 -0
- package/dist/nodes/GetCourseLegacy/v1/descriptions/common.js +198 -0
- package/dist/nodes/GetCourseLegacy/v1/descriptions/common.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/descriptions/constants.d.ts +7 -0
- package/dist/nodes/GetCourseLegacy/v1/descriptions/constants.js +116 -0
- package/dist/nodes/GetCourseLegacy/v1/descriptions/constants.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/helpers/errors.d.ts +18 -0
- package/dist/nodes/GetCourseLegacy/v1/helpers/errors.js +141 -0
- package/dist/nodes/GetCourseLegacy/v1/helpers/errors.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/helpers/exportRows.d.ts +8 -0
- package/dist/nodes/GetCourseLegacy/v1/helpers/exportRows.js +100 -0
- package/dist/nodes/GetCourseLegacy/v1/helpers/exportRows.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/methods/index.d.ts +2 -0
- package/dist/nodes/GetCourseLegacy/v1/methods/index.js +39 -0
- package/dist/nodes/GetCourseLegacy/v1/methods/index.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/methods/loadOptions.d.ts +5 -0
- package/dist/nodes/GetCourseLegacy/v1/methods/loadOptions.js +92 -0
- package/dist/nodes/GetCourseLegacy/v1/methods/loadOptions.js.map +1 -0
- package/dist/nodes/GetCourseLegacy/v1/transport/index.d.ts +13 -0
- package/dist/nodes/GetCourseLegacy/v1/transport/index.js +204 -0
- package/dist/nodes/GetCourseLegacy/v1/transport/index.js.map +1 -0
- package/dist/nodes/GetCourseTrigger/GetCourseTrigger.node.d.ts +12 -0
- package/dist/nodes/GetCourseTrigger/GetCourseTrigger.node.js +339 -0
- package/dist/nodes/GetCourseTrigger/GetCourseTrigger.node.js.map +1 -0
- package/dist/nodes/GetCourseTrigger/GetCourseTrigger.node.json +32 -0
- package/dist/nodes/GetCourseTrigger/payload.d.ts +14 -0
- package/dist/nodes/GetCourseTrigger/payload.js +66 -0
- package/dist/nodes/GetCourseTrigger/payload.js.map +1 -0
- package/dist/utils/cache.d.ts +2 -0
- package/dist/utils/cache.js +27 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/dates.d.ts +3 -0
- package/dist/utils/dates.js +70 -0
- package/dist/utils/dates.js.map +1 -0
- package/dist/utils/events.d.ts +14 -0
- package/dist/utils/events.js +92 -0
- package/dist/utils/events.js.map +1 -0
- package/dist/utils/httpError.d.ts +4 -0
- package/dist/utils/httpError.js +46 -0
- package/dist/utils/httpError.js.map +1 -0
- package/dist/utils/query.d.ts +4 -0
- package/dist/utils/query.js +42 -0
- package/dist/utils/query.js.map +1 -0
- package/dist/utils/rateLimiter.d.ts +3 -0
- package/dist/utils/rateLimiter.js +44 -0
- package/dist/utils/rateLimiter.js.map +1 -0
- package/dist/utils/router.d.ts +8 -0
- package/dist/utils/router.js +40 -0
- package/dist/utils/router.js.map +1 -0
- package/index.js +0 -0
- package/package.json +68 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const dates_1 = require("../../../../../utils/dates");
|
|
6
|
+
const query_1 = require("../../../../../utils/query");
|
|
7
|
+
const router_1 = require("../../../../../utils/router");
|
|
8
|
+
const errors_1 = require("../../helpers/errors");
|
|
9
|
+
const exportRows_1 = require("../../helpers/exportRows");
|
|
10
|
+
const transport_1 = require("../../transport");
|
|
11
|
+
const RESULT_ENDPOINT = '/pl/api/account/exports';
|
|
12
|
+
const DATASETS = {
|
|
13
|
+
users: { endpoint: '/pl/api/account/users', label: 'users' },
|
|
14
|
+
deals: { endpoint: '/pl/api/account/deals', label: 'orders' },
|
|
15
|
+
payments: { endpoint: '/pl/api/account/payments', label: 'payments' },
|
|
16
|
+
groupUsers: { endpoint: '', label: 'group members' },
|
|
17
|
+
};
|
|
18
|
+
function range(label, from, to, timezone, itemIndex) {
|
|
19
|
+
const bounds = (0, query_1.omitEmpty)({
|
|
20
|
+
from: assertDate.call(this, `${label} from`, from, timezone, itemIndex),
|
|
21
|
+
to: assertDate.call(this, `${label} to`, to, timezone, itemIndex),
|
|
22
|
+
});
|
|
23
|
+
return Object.keys(bounds).length === 0 ? undefined : bounds;
|
|
24
|
+
}
|
|
25
|
+
function assertDate(label, value, timezone, itemIndex) {
|
|
26
|
+
const formatted = (0, dates_1.toGetCourseDate)(value, timezone);
|
|
27
|
+
if (formatted === undefined || (0, dates_1.isGetCourseDate)(formatted))
|
|
28
|
+
return formatted;
|
|
29
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `"${label}" is not a date GetCourse can read`, {
|
|
30
|
+
description: `The filter received ${JSON.stringify(String(value))}, which does not resolve to a day. ` +
|
|
31
|
+
'Give it as YYYY-MM-DD, or as a date the workflow already holds — an unreadable filter ' +
|
|
32
|
+
'would be sent as written, and an export that ignores its filter returns the whole account.',
|
|
33
|
+
itemIndex,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function startEndpoint(dataset, itemIndex) {
|
|
37
|
+
var _a;
|
|
38
|
+
if (dataset !== 'groupUsers')
|
|
39
|
+
return DATASETS[dataset].endpoint;
|
|
40
|
+
const groupId = String((_a = this.getNodeParameter('groupId', itemIndex, '')) !== null && _a !== void 0 ? _a : '').trim();
|
|
41
|
+
if (groupId === '') {
|
|
42
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No group to export members of', {
|
|
43
|
+
description: 'Pick a group, or give its ID.',
|
|
44
|
+
itemIndex,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return `/pl/api/account/groups/${encodeURIComponent(groupId)}/users`;
|
|
48
|
+
}
|
|
49
|
+
const FILTER_PARAMETERS = {
|
|
50
|
+
users: 'userFilters',
|
|
51
|
+
groupUsers: 'groupUserFilters',
|
|
52
|
+
deals: 'dealFilters',
|
|
53
|
+
payments: 'paymentFilters',
|
|
54
|
+
};
|
|
55
|
+
function buildFilters(dataset, itemIndex) {
|
|
56
|
+
var _a, _b, _c;
|
|
57
|
+
const parameter = (_a = FILTER_PARAMETERS[dataset]) !== null && _a !== void 0 ? _a : 'userFilters';
|
|
58
|
+
const filters = this.getNodeParameter(parameter, itemIndex, {});
|
|
59
|
+
const timezone = this.getTimezone();
|
|
60
|
+
const query = (0, query_1.omitEmpty)({
|
|
61
|
+
created_at: range.call(this, 'Created', filters.createdFrom, filters.createdTo, timezone, itemIndex),
|
|
62
|
+
status: filters.status,
|
|
63
|
+
});
|
|
64
|
+
if (dataset === 'users') {
|
|
65
|
+
const emails = (0, query_1.splitList)(filters.email);
|
|
66
|
+
if (emails.length > 0)
|
|
67
|
+
query.email = emails.join(',');
|
|
68
|
+
}
|
|
69
|
+
if (dataset === 'groupUsers') {
|
|
70
|
+
const added = range.call(this, 'Added to Group', filters.addedFrom, filters.addedTo, timezone, itemIndex);
|
|
71
|
+
if (added !== undefined)
|
|
72
|
+
query.added_at = added;
|
|
73
|
+
}
|
|
74
|
+
if (dataset === 'deals') {
|
|
75
|
+
const payed = range.call(this, 'Paid', filters.payedFrom, filters.payedTo, timezone, itemIndex);
|
|
76
|
+
if (payed !== undefined)
|
|
77
|
+
query.payed_at = payed;
|
|
78
|
+
const finished = range.call(this, 'Finished', filters.finishedFrom, filters.finishedTo, timezone, itemIndex);
|
|
79
|
+
if (finished !== undefined)
|
|
80
|
+
query.finished_at = finished;
|
|
81
|
+
const changed = range.call(this, 'Status Changed', filters.statusChangedFrom, filters.statusChangedTo, timezone, itemIndex);
|
|
82
|
+
if (changed !== undefined)
|
|
83
|
+
query.status_changed_at = changed;
|
|
84
|
+
if (String((_b = filters.user_in_group) !== null && _b !== void 0 ? _b : '') !== '')
|
|
85
|
+
query.user_in_group = filters.user_in_group;
|
|
86
|
+
const userIds = (0, query_1.splitList)(filters.user_id);
|
|
87
|
+
if (userIds.length > 0)
|
|
88
|
+
query.user_id = userIds.join(',');
|
|
89
|
+
}
|
|
90
|
+
if (dataset === 'payments') {
|
|
91
|
+
const changed = range.call(this, 'Status Changed', filters.statusChangedFrom, filters.statusChangedTo, timezone, itemIndex);
|
|
92
|
+
if (changed !== undefined)
|
|
93
|
+
query.status_changed_at = changed;
|
|
94
|
+
}
|
|
95
|
+
assertFiltered.call(this, query, itemIndex);
|
|
96
|
+
if (dataset === 'users') {
|
|
97
|
+
const groupColumns = String((_c = this.getNodeParameter('idgrouplist', itemIndex, '')) !== null && _c !== void 0 ? _c : '');
|
|
98
|
+
if (groupColumns !== '')
|
|
99
|
+
query.idgrouplist = groupColumns;
|
|
100
|
+
}
|
|
101
|
+
return query;
|
|
102
|
+
}
|
|
103
|
+
function assertFiltered(query, itemIndex) {
|
|
104
|
+
if (Object.keys(query).length > 0)
|
|
105
|
+
return;
|
|
106
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'An export needs at least one filter', {
|
|
107
|
+
description: 'GetCourse refuses to build a file without one. A created-from date is the usual choice; adding a created-to date as well keeps the response to a size n8n can hold in memory.',
|
|
108
|
+
itemIndex,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function readExportId(envelope, itemIndex) {
|
|
112
|
+
var _a, _b;
|
|
113
|
+
const info = ((_a = envelope.info) !== null && _a !== void 0 ? _a : {});
|
|
114
|
+
const exportId = String((_b = info.export_id) !== null && _b !== void 0 ? _b : '').trim();
|
|
115
|
+
if (exportId !== '')
|
|
116
|
+
return exportId;
|
|
117
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'GetCourse started no export', {
|
|
118
|
+
description: (0, errors_1.errorTextOf)(envelope) ||
|
|
119
|
+
'GetCourse accepted the request but the answer carried no export ID, so there is nothing to collect. Try the same filter again; if it keeps happening, run the export once from the account itself to check the dataset is available on this plan.',
|
|
120
|
+
itemIndex,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
async function fetchResult(exportId) {
|
|
124
|
+
return await transport_1.exportRequest.call(this, `${RESULT_ENDPOINT}/${encodeURIComponent(exportId)}`, {}, { allowPending: true });
|
|
125
|
+
}
|
|
126
|
+
function presentResult(envelope, exportId, itemIndex) {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
const options = this.getNodeParameter('options', itemIndex, {});
|
|
129
|
+
const table = (0, exportRows_1.readTable)(envelope.info);
|
|
130
|
+
if (options.output === 'raw') {
|
|
131
|
+
return [
|
|
132
|
+
{ json: { export_id: exportId, ready: true, ...((_a = envelope.info) !== null && _a !== void 0 ? _a : {}) } },
|
|
133
|
+
];
|
|
134
|
+
}
|
|
135
|
+
if (table === undefined)
|
|
136
|
+
return [];
|
|
137
|
+
return (0, exportRows_1.tableToRows)(table, String((_b = options.keyStyle) !== null && _b !== void 0 ? _b : 'original')).map((row) => ({ json: row }));
|
|
138
|
+
}
|
|
139
|
+
async function start(itemIndex) {
|
|
140
|
+
const dataset = String(this.getNodeParameter('dataset', itemIndex, 'users'));
|
|
141
|
+
const envelope = await transport_1.exportRequest.call(this, startEndpoint.call(this, dataset, itemIndex), buildFilters.call(this, dataset, itemIndex));
|
|
142
|
+
return [
|
|
143
|
+
{
|
|
144
|
+
json: {
|
|
145
|
+
export_id: readExportId.call(this, envelope, itemIndex),
|
|
146
|
+
dataset,
|
|
147
|
+
ready: false,
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
];
|
|
151
|
+
}
|
|
152
|
+
async function checkStatus(itemIndex) {
|
|
153
|
+
var _a, _b, _c;
|
|
154
|
+
const exportId = String((_a = this.getNodeParameter('exportId', itemIndex, '')) !== null && _a !== void 0 ? _a : '').trim();
|
|
155
|
+
if (exportId === '') {
|
|
156
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No export to check', {
|
|
157
|
+
description: 'Give the export ID that Start returned.',
|
|
158
|
+
itemIndex,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
const envelope = await fetchResult.call(this, exportId);
|
|
162
|
+
if ((0, errors_1.isExportPending)(envelope)) {
|
|
163
|
+
return [{ json: { export_id: exportId, ready: false, message: (0, errors_1.errorTextOf)(envelope) } }];
|
|
164
|
+
}
|
|
165
|
+
const table = (0, exportRows_1.readTable)(envelope.info);
|
|
166
|
+
return [
|
|
167
|
+
{
|
|
168
|
+
json: {
|
|
169
|
+
export_id: exportId,
|
|
170
|
+
ready: true,
|
|
171
|
+
row_count: (_b = table === null || table === void 0 ? void 0 : table.items.length) !== null && _b !== void 0 ? _b : 0,
|
|
172
|
+
fields: (_c = table === null || table === void 0 ? void 0 : table.fields) !== null && _c !== void 0 ? _c : [],
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
async function getResult(itemIndex) {
|
|
178
|
+
var _a;
|
|
179
|
+
const exportId = String((_a = this.getNodeParameter('exportId', itemIndex, '')) !== null && _a !== void 0 ? _a : '').trim();
|
|
180
|
+
if (exportId === '') {
|
|
181
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No export to fetch', {
|
|
182
|
+
description: 'Give the export ID that Start returned.',
|
|
183
|
+
itemIndex,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
const envelope = await fetchResult.call(this, exportId);
|
|
187
|
+
if ((0, errors_1.isExportPending)(envelope)) {
|
|
188
|
+
if (this.getNodeParameter('onNotReady', itemIndex, 'error') === 'status') {
|
|
189
|
+
return [{ json: { export_id: exportId, ready: false, message: (0, errors_1.errorTextOf)(envelope) } }];
|
|
190
|
+
}
|
|
191
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The export is still being built', {
|
|
192
|
+
description: `GetCourse has not finished export ${exportId} yet. Put a Wait node in front of this one, ` +
|
|
193
|
+
'or set "On Not Ready" to Return Status and loop back through an IF node.',
|
|
194
|
+
itemIndex,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return presentResult.call(this, envelope, exportId, itemIndex);
|
|
198
|
+
}
|
|
199
|
+
async function run(itemIndex) {
|
|
200
|
+
var _a, _b, _c;
|
|
201
|
+
const polling = this.getNodeParameter('polling', itemIndex, {});
|
|
202
|
+
const initialDelay = Number((_a = polling.initialDelay) !== null && _a !== void 0 ? _a : 15);
|
|
203
|
+
const pollInterval = Math.max(5, Number((_b = polling.pollInterval) !== null && _b !== void 0 ? _b : 30));
|
|
204
|
+
const maxPolls = Math.max(1, Number((_c = polling.maxPolls) !== null && _c !== void 0 ? _c : 10));
|
|
205
|
+
const dataset = String(this.getNodeParameter('dataset', itemIndex, 'users'));
|
|
206
|
+
const started = await transport_1.exportRequest.call(this, startEndpoint.call(this, dataset, itemIndex), buildFilters.call(this, dataset, itemIndex));
|
|
207
|
+
const exportId = readExportId.call(this, started, itemIndex);
|
|
208
|
+
if (initialDelay > 0)
|
|
209
|
+
await (0, n8n_workflow_1.sleep)(initialDelay * 1000);
|
|
210
|
+
for (let poll = 1; poll <= maxPolls; poll++) {
|
|
211
|
+
let envelope;
|
|
212
|
+
try {
|
|
213
|
+
envelope = await fetchResult.call(this, exportId);
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Export ${exportId} was started but could not be collected: ${error instanceof Error ? error.message : String(error)}`, {
|
|
217
|
+
description: `GetCourse is still building export ${exportId}, and it is not lost — a Get Result ` +
|
|
218
|
+
'with that ID will pick it up once the file is ready and the request budget allows. ' +
|
|
219
|
+
'Set "On Timeout" to return the ID if you would rather the workflow carried on.',
|
|
220
|
+
itemIndex,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
if (!(0, errors_1.isExportPending)(envelope))
|
|
224
|
+
return presentResult.call(this, envelope, exportId, itemIndex);
|
|
225
|
+
if (poll < maxPolls)
|
|
226
|
+
await (0, n8n_workflow_1.sleep)(pollInterval * 1000);
|
|
227
|
+
}
|
|
228
|
+
if (polling.onTimeout === 'returnId') {
|
|
229
|
+
return [{ json: { export_id: exportId, dataset, ready: false } }];
|
|
230
|
+
}
|
|
231
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The export did not finish in time', {
|
|
232
|
+
description: `GetCourse is still building export ${exportId} after ${maxPolls} checks. It is not lost — ` +
|
|
233
|
+
'a Get Result with that ID will pick it up once it is done. Raise "Give Up After", or set ' +
|
|
234
|
+
'"On Timeout" to return the ID and fetch it in a later run.',
|
|
235
|
+
itemIndex,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
async function execute(operation, itemIndex) {
|
|
239
|
+
switch (operation) {
|
|
240
|
+
case 'run':
|
|
241
|
+
return await run.call(this, itemIndex);
|
|
242
|
+
case 'start':
|
|
243
|
+
return await start.call(this, itemIndex);
|
|
244
|
+
case 'checkStatus':
|
|
245
|
+
return await checkStatus.call(this, itemIndex);
|
|
246
|
+
case 'getResult':
|
|
247
|
+
return await getResult.call(this, itemIndex);
|
|
248
|
+
default:
|
|
249
|
+
throw router_1.unknownOperation.call(this, 'export', operation, itemIndex);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/GetCourseLegacy/v1/actions/export/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = exports.description = void 0;
|
|
4
|
+
var description_1 = require("./description");
|
|
5
|
+
Object.defineProperty(exports, "description", { enumerable: true, get: function () { return description_1.description; } });
|
|
6
|
+
var execute_1 = require("./execute");
|
|
7
|
+
Object.defineProperty(exports, "execute", { enumerable: true, get: function () { return execute_1.execute; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/GetCourseLegacy/v1/actions/export/index.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.description = void 0;
|
|
4
|
+
exports.execute = execute;
|
|
5
|
+
const router_1 = require("../../../../../utils/router");
|
|
6
|
+
const transport_1 = require("../../transport");
|
|
7
|
+
exports.description = [
|
|
8
|
+
{
|
|
9
|
+
displayName: 'Operation',
|
|
10
|
+
name: 'operation',
|
|
11
|
+
type: 'options',
|
|
12
|
+
noDataExpression: true,
|
|
13
|
+
default: 'getAll',
|
|
14
|
+
displayOptions: { show: { resource: ['field'] } },
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
name: 'Get Many',
|
|
18
|
+
value: 'getAll',
|
|
19
|
+
action: 'Get many custom fields',
|
|
20
|
+
description: 'Справочник дополнительных полей пользователей и заказов. Returns every custom field the account defines, with its ID, title, type and the entity it belongs to.',
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
displayName: 'Это единственный способ узнать ID дополнительного поля. The legacy import addresses custom fields by title, while the Tech API addresses them by numeric ID and publishes no dictionary of its own — so this is where a Tech API workflow finds the ID it needs.',
|
|
26
|
+
name: 'fieldNotice',
|
|
27
|
+
type: 'notice',
|
|
28
|
+
default: '',
|
|
29
|
+
displayOptions: { show: { resource: ['field'], operation: ['getAll'] } },
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
displayName: 'Entity',
|
|
33
|
+
name: 'contextFilter',
|
|
34
|
+
type: 'string',
|
|
35
|
+
default: '',
|
|
36
|
+
placeholder: 'user',
|
|
37
|
+
displayOptions: { show: { resource: ['field'], operation: ['getAll'] } },
|
|
38
|
+
description: 'Оставить только поля этой сущности, matched against context_type as a case-insensitive substring. Leave empty to see every field, which is also how you find out what values your account uses.',
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
async function execute(operation, itemIndex) {
|
|
42
|
+
var _a;
|
|
43
|
+
if (operation !== 'getAll')
|
|
44
|
+
throw router_1.unknownOperation.call(this, 'field', operation, itemIndex);
|
|
45
|
+
const envelope = await transport_1.fieldsRequest.call(this);
|
|
46
|
+
const info = envelope.info;
|
|
47
|
+
const rows = Array.isArray(info) ? info : [];
|
|
48
|
+
const wanted = String((_a = this.getNodeParameter('contextFilter', itemIndex, '')) !== null && _a !== void 0 ? _a : '')
|
|
49
|
+
.trim()
|
|
50
|
+
.toLowerCase();
|
|
51
|
+
const filtered = wanted === ''
|
|
52
|
+
? rows
|
|
53
|
+
: rows.filter((row) => {
|
|
54
|
+
var _a;
|
|
55
|
+
return String((_a = row.context_type) !== null && _a !== void 0 ? _a : '')
|
|
56
|
+
.toLowerCase()
|
|
57
|
+
.includes(wanted);
|
|
58
|
+
});
|
|
59
|
+
return filtered.map((row) => ({ json: row }));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/GetCourseLegacy/v1/actions/field/index.ts"],"names":[],"mappings":";;;AA2DA,0BAyBC;AA7ED,wDAA+D;AAC/D,+CAAgD;AAanC,QAAA,WAAW,GAAsB;IAC7C;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;QACjD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,wBAAwB;gBAChC,WAAW,EACV,iKAAiK;aAClK;SACD;KACD;IACD;QACC,WAAW,EACV,kQAAkQ;QACnQ,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;KACxE;IACD;QACC,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,MAAM;QACnB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;QACxE,WAAW,EACV,iMAAiM;KAClM;CACD,CAAC;AAEK,KAAK,UAAU,OAAO,CAE5B,SAAiB,EACjB,SAAiB;;IAEjB,IAAI,SAAS,KAAK,QAAQ;QAAE,MAAM,yBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAE7F,MAAM,QAAQ,GAAG,MAAM,yBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,mCAAI,EAAE,CAAC;SAChF,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;IAEhB,MAAM,QAAQ,GACb,MAAM,KAAK,EAAE;QACZ,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;;YACpB,OAAA,MAAM,CAAC,MAAA,GAAG,CAAC,YAAY,mCAAI,EAAE,CAAC;iBAC5B,WAAW,EAAE;iBACb,QAAQ,CAAC,MAAM,CAAC,CAAA;SAAA,CAClB,CAAC;IAEL,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.description = void 0;
|
|
4
|
+
exports.execute = execute;
|
|
5
|
+
const router_1 = require("../../../../../utils/router");
|
|
6
|
+
const transport_1 = require("../../transport");
|
|
7
|
+
const ENDPOINT = '/pl/api/account/groups';
|
|
8
|
+
exports.description = [
|
|
9
|
+
{
|
|
10
|
+
displayName: 'Operation',
|
|
11
|
+
name: 'operation',
|
|
12
|
+
type: 'options',
|
|
13
|
+
noDataExpression: true,
|
|
14
|
+
default: 'getAll',
|
|
15
|
+
displayOptions: { show: { resource: ['group'] } },
|
|
16
|
+
options: [
|
|
17
|
+
{
|
|
18
|
+
name: 'Get Many',
|
|
19
|
+
value: 'getAll',
|
|
20
|
+
action: 'Get many groups',
|
|
21
|
+
description: 'Список всех групп аккаунта. Answers immediately with every group, its ID and when someone was last added to it — no export job involved.',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
displayName: 'Ответ приходит сразу, без ключа экспорта, но один запрос из бюджета Export API он всё равно тратит. To export the people in a group rather than the list of groups, use the Export resource with the Group Members dataset.',
|
|
27
|
+
name: 'groupNotice',
|
|
28
|
+
type: 'notice',
|
|
29
|
+
default: '',
|
|
30
|
+
displayOptions: { show: { resource: ['group'], operation: ['getAll'] } },
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
async function execute(operation, itemIndex) {
|
|
34
|
+
if (operation !== 'getAll')
|
|
35
|
+
throw router_1.unknownOperation.call(this, 'group', operation, itemIndex);
|
|
36
|
+
const envelope = await transport_1.exportRequest.call(this, ENDPOINT);
|
|
37
|
+
const info = envelope.info;
|
|
38
|
+
if (Array.isArray(info))
|
|
39
|
+
return info.map((group) => ({ json: group }));
|
|
40
|
+
return info === null || typeof info !== 'object' ? [] : [{ json: info }];
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/GetCourseLegacy/v1/actions/group/index.ts"],"names":[],"mappings":";;;AAgDA,0BAeC;AAxDD,wDAA+D;AAC/D,+CAAgD;AAEhD,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAU7B,QAAA,WAAW,GAAsB;IAC7C;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;QACjD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,iBAAiB;gBACzB,WAAW,EACV,0IAA0I;aAC3I;SACD;KACD;IACD;QACC,WAAW,EACV,6NAA6N;QAC9N,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;KACxE;CACD,CAAC;AAEK,KAAK,UAAU,OAAO,CAE5B,SAAiB,EACjB,SAAiB;IAEjB,IAAI,SAAS,KAAK,QAAQ;QAAE,MAAM,yBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAE7F,MAAM,QAAQ,GAAG,MAAM,yBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAI3B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAQ,IAAsB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE1F,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAmB,EAAE,CAAC,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { INodeProperties } from 'n8n-workflow';
|
|
2
|
+
import type { ResourceModule } from '../../../../utils/router';
|
|
3
|
+
export declare const resources: Record<string, ResourceModule>;
|
|
4
|
+
export declare const resourceProperty: INodeProperties;
|
|
5
|
+
export declare const resourceProperties: INodeProperties[];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resourceProperties = exports.resourceProperty = exports.resources = void 0;
|
|
37
|
+
const deal = __importStar(require("./deal"));
|
|
38
|
+
const exportJob = __importStar(require("./export"));
|
|
39
|
+
const field = __importStar(require("./field"));
|
|
40
|
+
const group = __importStar(require("./group"));
|
|
41
|
+
const user = __importStar(require("./user"));
|
|
42
|
+
exports.resources = {
|
|
43
|
+
deal,
|
|
44
|
+
export: exportJob,
|
|
45
|
+
field,
|
|
46
|
+
group,
|
|
47
|
+
user,
|
|
48
|
+
};
|
|
49
|
+
exports.resourceProperty = {
|
|
50
|
+
displayName: 'Resource',
|
|
51
|
+
name: 'resource',
|
|
52
|
+
type: 'options',
|
|
53
|
+
noDataExpression: true,
|
|
54
|
+
default: 'export',
|
|
55
|
+
options: [
|
|
56
|
+
{
|
|
57
|
+
name: 'Custom Field',
|
|
58
|
+
value: 'field',
|
|
59
|
+
description: 'Справочник дополнительных полей аккаунта — the only place either API publishes it',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'Export',
|
|
63
|
+
value: 'export',
|
|
64
|
+
description: 'Выгрузка пользователей, заказов, платежей и участников групп',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'Group',
|
|
68
|
+
value: 'group',
|
|
69
|
+
description: 'Список групп аккаунта',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'Order',
|
|
73
|
+
value: 'deal',
|
|
74
|
+
description: 'Импорт заказов и смена их статуса',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: 'User',
|
|
78
|
+
value: 'user',
|
|
79
|
+
description: 'Импорт пользователей и управление их группами',
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
exports.resourceProperties = Object.values(exports.resources).flatMap((module) => module.description);
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/GetCourseLegacy/v1/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,6CAA+B;AAC/B,oDAAsC;AACtC,+CAAiC;AACjC,+CAAiC;AACjC,6CAA+B;AAGlB,QAAA,SAAS,GAAmC;IACxD,IAAI;IACJ,MAAM,EAAE,SAAS;IACjB,KAAK;IACL,KAAK;IACL,IAAI;CACJ,CAAC;AAEW,QAAA,gBAAgB,GAAoB;IAChD,WAAW,EAAE,UAAU;IACvB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;IACf,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE;QACR;YACC,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,OAAO;YACd,WAAW,EACV,mFAAmF;SACpF;QACD;YACC,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,8DAA8D;SAC3E;QACD;YACC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,uBAAuB;SACpC;QACD;YACC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,mCAAmC;SAChD;QACD;YACC,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,+CAA+C;SAC5D;KACD;CACD,CAAC;AAEW,QAAA,kBAAkB,GAAsB,MAAM,CAAC,MAAM,CAAC,iBAAS,CAAC,CAAC,OAAO,CACpF,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAC9B,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.description = void 0;
|
|
4
|
+
const common_1 = require("../../descriptions/common");
|
|
5
|
+
const showFor = (operations) => ({
|
|
6
|
+
show: { resource: ['user'], operation: operations },
|
|
7
|
+
});
|
|
8
|
+
const operation = {
|
|
9
|
+
displayName: 'Operation',
|
|
10
|
+
name: 'operation',
|
|
11
|
+
type: 'options',
|
|
12
|
+
noDataExpression: true,
|
|
13
|
+
default: 'import',
|
|
14
|
+
displayOptions: { show: { resource: ['user'] } },
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
name: 'Import',
|
|
18
|
+
value: 'import',
|
|
19
|
+
action: 'Import a user',
|
|
20
|
+
description: 'Создать или обновить пользователя. Adds the person if the e-mail is new, and updates them if it is not — but only when Update Existing is on.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Replace Groups',
|
|
24
|
+
value: 'replaceGroups',
|
|
25
|
+
action: 'Replace the groups of a user',
|
|
26
|
+
description: 'Задать список групп пользователя. Leaves the person in exactly the groups listed and removes them from every other one.',
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
};
|
|
30
|
+
const importFields = {
|
|
31
|
+
displayName: 'Additional Fields',
|
|
32
|
+
name: 'additionalFields',
|
|
33
|
+
type: 'collection',
|
|
34
|
+
placeholder: 'Add Field',
|
|
35
|
+
default: {},
|
|
36
|
+
displayOptions: showFor(['import']),
|
|
37
|
+
options: [
|
|
38
|
+
...(0, common_1.userProfileFields)(),
|
|
39
|
+
{
|
|
40
|
+
displayName: 'Partner Email',
|
|
41
|
+
name: 'partner_email',
|
|
42
|
+
type: 'string',
|
|
43
|
+
placeholder: 'partner@example.com',
|
|
44
|
+
default: '',
|
|
45
|
+
description: "Email партнёра. Marks the person as this partner's referral. A partner who does not exist is an error; one who exists but is not yet a partner is promoted to one.",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
displayName: 'Update Existing',
|
|
49
|
+
name: 'refresh_if_exists',
|
|
50
|
+
type: 'boolean',
|
|
51
|
+
default: false,
|
|
52
|
+
description: "Whether to overwrite an existing person's data (обновлять существующего). With this off, an import for a known e-mail changes nothing at all — not even the groups.",
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
const replaceGroupsNotice = {
|
|
57
|
+
displayName: 'Каждая группа, которой нет в списке ниже, будет снята. This operation sets the whole membership list, so a user in five groups and a request naming one ends up in that one group only. To add a group without touching the others, use Import instead.',
|
|
58
|
+
name: 'replaceGroupsNotice',
|
|
59
|
+
type: 'notice',
|
|
60
|
+
default: '',
|
|
61
|
+
displayOptions: showFor(['replaceGroups']),
|
|
62
|
+
};
|
|
63
|
+
const userIdProperty = {
|
|
64
|
+
displayName: 'User ID',
|
|
65
|
+
name: 'userId',
|
|
66
|
+
type: 'string',
|
|
67
|
+
default: '',
|
|
68
|
+
required: true,
|
|
69
|
+
displayOptions: showFor(['replaceGroups']),
|
|
70
|
+
description: 'ID пользователя в GetCourse. This operation is the one place the legacy API insists on the numeric ID rather than an e-mail; the Export resource and the GetCourse node both return it.',
|
|
71
|
+
};
|
|
72
|
+
exports.description = [
|
|
73
|
+
operation,
|
|
74
|
+
(0, common_1.importNotice)('userImportNotice', showFor(['import'])),
|
|
75
|
+
replaceGroupsNotice,
|
|
76
|
+
...(0, common_1.userIdentityProperties)(showFor(['import'])),
|
|
77
|
+
userIdProperty,
|
|
78
|
+
(0, common_1.groupsProperty)(showFor(['import'])),
|
|
79
|
+
(0, common_1.groupsProperty)(showFor(['replaceGroups']), {
|
|
80
|
+
includeAddedAt: false,
|
|
81
|
+
description: 'Группы, в которых пользователь останется. Named by title. Every group not listed here is removed, and this operation ignores join dates, so the date picker is not offered.',
|
|
82
|
+
}),
|
|
83
|
+
importFields,
|
|
84
|
+
(0, common_1.addFieldsProperty)(showFor(['import']), 'getUserCustomFields', 'пользователя'),
|
|
85
|
+
(0, common_1.sessionProperty)(showFor(['import'])),
|
|
86
|
+
];
|
|
87
|
+
//# sourceMappingURL=description.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"description.js","sourceRoot":"","sources":["../../../../../../nodes/GetCourseLegacy/v1/actions/user/description.ts"],"names":[],"mappings":";;;AAEA,sDAOmC;AAEnC,MAAM,OAAO,GAAG,CAAC,UAAoB,EAAqC,EAAE,CAAC,CAAC;IAC7E,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE;CACnD,CAAC,CAAC;AASH,MAAM,SAAS,GAAoB;IAClC,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,SAAS;IACf,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,QAAQ;IACjB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;IAChD,OAAO,EAAE;QACR;YACC,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,eAAe;YACvB,WAAW,EACV,+IAA+I;SAChJ;QACD;YACC,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,8BAA8B;YACtC,WAAW,EACV,yHAAyH;SAC1H;KACD;CACD,CAAC;AAEF,MAAM,YAAY,GAAoB;IACrC,WAAW,EAAE,mBAAmB;IAChC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,WAAW;IACxB,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,EAAE;QACR,GAAG,IAAA,0BAAiB,GAAE;QACtB;YACC,WAAW,EAAE,eAAe;YAC5B,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,EAAE;YACX,WAAW,EACV,oKAAoK;SACrK;QACD;YACC,WAAW,EAAE,iBAAiB;YAC9B,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EACV,qKAAqK;SACtK;KACD;CACD,CAAC;AAEF,MAAM,mBAAmB,GAAoB;IAC5C,WAAW,EACV,yPAAyP;IAC1P,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,cAAc,GAAoB;IACvC,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC;IAC1C,WAAW,EACV,yLAAyL;CAC1L,CAAC;AAEW,QAAA,WAAW,GAAsB;IAC7C,SAAS;IACT,IAAA,qBAAY,EAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,mBAAmB;IACnB,GAAG,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,cAAc;IACd,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE;QAC1C,cAAc,EAAE,KAAK;QACrB,WAAW,EACV,6KAA6K;KAC9K,CAAC;IACF,YAAY;IACZ,IAAA,0BAAiB,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,qBAAqB,EAAE,cAAc,CAAC;IAC7E,IAAA,wBAAe,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;CACpC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IDataObject, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
export declare function buildGroupNames(this: IExecuteFunctions, itemIndex: number): Array<string | [string, string]>;
|
|
3
|
+
export declare function buildAddFields(this: IExecuteFunctions, itemIndex: number): IDataObject;
|
|
4
|
+
export declare function buildSession(this: IExecuteFunctions, itemIndex: number): IDataObject;
|
|
5
|
+
export declare function execute(this: IExecuteFunctions, operation: string, itemIndex: number): Promise<INodeExecutionData[]>;
|