mcdev 4.3.4 → 5.0.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/.coverage-comment-template.md +20 -0
- package/.coverage-comment-template.svelte +178 -0
- package/.eslintrc.json +2 -0
- package/.github/ISSUE_TEMPLATE/bug.yml +1 -0
- package/.github/workflows/code-test.yml +36 -0
- package/.github/workflows/coverage-base-update.yml +57 -0
- package/.github/workflows/coverage-develop-branch.yml +41 -0
- package/.github/workflows/coverage-main-branch.yml +41 -0
- package/.github/workflows/coverage.yml +77 -0
- package/.husky/post-checkout +1 -1
- package/.prettierrc +1 -1
- package/.vscode/extensions.json +0 -4
- package/boilerplate/config.json +1 -1
- package/boilerplate/files/.prettierrc +1 -1
- package/boilerplate/files/.vscode/extensions.json +1 -1
- package/boilerplate/forcedUpdates.json +4 -0
- package/docs/dist/documentation.md +1196 -430
- package/lib/Builder.js +6 -1
- package/lib/Deployer.js +30 -5
- package/lib/MetadataTypeDefinitions.js +8 -6
- package/lib/MetadataTypeInfo.js +8 -6
- package/lib/cli.js +54 -42
- package/lib/index.js +82 -8
- package/lib/metadataTypes/Asset.js +73 -1
- package/lib/metadataTypes/AttributeGroup.js +0 -1
- package/lib/metadataTypes/Automation.js +48 -5
- package/lib/metadataTypes/Campaign.js +20 -7
- package/lib/metadataTypes/ContentArea.js +1 -1
- package/lib/metadataTypes/DataExtension.js +221 -184
- package/lib/metadataTypes/DataExtensionField.js +12 -19
- package/lib/metadataTypes/DataExtensionTemplate.js +1 -1
- package/lib/metadataTypes/DataExtract.js +1 -1
- package/lib/metadataTypes/DataExtractType.js +1 -1
- package/lib/metadataTypes/Email.js +1 -1
- package/lib/metadataTypes/{EmailSendDefinition.js → EmailSend.js} +5 -5
- package/lib/metadataTypes/{EventDefinition.js → Event.js} +17 -35
- package/lib/metadataTypes/{FtpLocation.js → FileLocation.js} +2 -2
- package/lib/metadataTypes/FileTransfer.js +8 -7
- package/lib/metadataTypes/Filter.js +1 -1
- package/lib/metadataTypes/Folder.js +8 -3
- package/lib/metadataTypes/ImportFile.js +6 -6
- package/lib/metadataTypes/{Interaction.js → Journey.js} +311 -147
- package/lib/metadataTypes/List.js +2 -2
- package/lib/metadataTypes/MetadataType.js +318 -90
- package/lib/metadataTypes/MobileCode.js +0 -1
- package/lib/metadataTypes/MobileKeyword.js +336 -40
- package/lib/metadataTypes/MobileMessage.js +473 -0
- package/lib/metadataTypes/Query.js +114 -32
- package/lib/metadataTypes/Role.js +60 -21
- package/lib/metadataTypes/Script.js +2 -3
- package/lib/metadataTypes/SendClassification.js +40 -0
- package/lib/metadataTypes/SetDefinition.js +1 -7
- package/lib/metadataTypes/TransactionalEmail.js +2 -3
- package/lib/metadataTypes/TransactionalMessage.js +1 -2
- package/lib/metadataTypes/TransactionalSMS.js +8 -15
- package/lib/metadataTypes/{TriggeredSendDefinition.js → TriggeredSend.js} +35 -27
- package/lib/metadataTypes/User.js +1177 -0
- package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
- package/lib/metadataTypes/definitions/AttributeGroup.definition.js +1 -0
- package/lib/metadataTypes/definitions/Automation.definition.js +3 -2
- package/lib/metadataTypes/definitions/Campaign.definition.js +79 -4
- package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtension.definition.js +2 -1
- package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtractType.definition.js +1 -0
- package/lib/metadataTypes/definitions/Discovery.definition.js +1 -0
- package/lib/metadataTypes/definitions/Email.definition.js +1 -0
- package/lib/metadataTypes/definitions/{EmailSendDefinition.definition.js → EmailSend.definition.js} +4 -2
- package/lib/metadataTypes/definitions/{EventDefinition.definition.js → Event.definition.js} +2 -1
- package/lib/metadataTypes/definitions/{FtpLocation.definition.js → FileLocation.definition.js} +4 -3
- package/lib/metadataTypes/definitions/FileTransfer.definition.js +3 -2
- package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
- package/lib/metadataTypes/definitions/Folder.definition.js +2 -0
- package/lib/metadataTypes/definitions/ImportFile.definition.js +4 -3
- package/lib/metadataTypes/definitions/{Interaction.definition.js → Journey.definition.js} +11 -2
- package/lib/metadataTypes/definitions/List.definition.js +1 -0
- package/lib/metadataTypes/definitions/MobileCode.definition.js +3 -1
- package/lib/metadataTypes/definitions/MobileKeyword.definition.js +27 -17
- package/lib/metadataTypes/definitions/MobileMessage.definition.js +743 -0
- package/lib/metadataTypes/definitions/Query.definition.js +3 -2
- package/lib/metadataTypes/definitions/Role.definition.js +5 -0
- package/lib/metadataTypes/definitions/Script.definition.js +1 -0
- package/lib/metadataTypes/definitions/SendClassification.definition.js +114 -0
- package/lib/metadataTypes/definitions/SetDefinition.definition.js +1 -0
- package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +2 -1
- package/lib/metadataTypes/definitions/TransactionalPush.definition.js +1 -0
- package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +1 -0
- package/lib/metadataTypes/definitions/{TriggeredSendDefinition.definition.js → TriggeredSend.definition.js} +5 -3
- package/lib/metadataTypes/definitions/User.definition.js +365 -0
- package/lib/retrieveChangelog.js +1 -2
- package/lib/util/auth.js +29 -9
- package/lib/util/businessUnit.js +3 -3
- package/lib/util/cli.js +55 -7
- package/lib/util/devops.js +6 -4
- package/lib/util/file.js +55 -13
- package/lib/util/init.config.js +1 -2
- package/lib/util/init.npm.js +3 -3
- package/lib/util/util.js +23 -14
- package/package.json +16 -15
- package/test/general.test.js +62 -0
- package/test/mockRoot/.mcdevrc.json +7 -5
- package/test/mockRoot/deploy/testInstance/_ParentBU_/user/testBlocked_user.user-meta.json +23 -0
- package/test/mockRoot/deploy/testInstance/_ParentBU_/user/testExisting_user.user-meta.json +31 -0
- package/test/mockRoot/deploy/testInstance/_ParentBU_/user/testNew_user.user-meta.json +27 -0
- package/test/mockRoot/deploy/testInstance/testBU/dataExtension/{childBU_dataextension_test.dataExtension-meta.json → testExisting_dataExtension.dataExtension-meta.json} +2 -2
- package/test/mockRoot/deploy/testInstance/testBU/dataExtension/{testDataExtension.dataExtension-meta.json → testNew_dataExtension.dataExtension-meta.json} +2 -2
- package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_interaction.interaction-meta.json +576 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/testNew_keyword.mobileKeyword-meta.amp +2 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/testNew_keyword.mobileKeyword-meta.json +10 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/testNew_keyword_blocked.mobileKeyword-meta.amp +2 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/testNew_keyword_blocked.mobileKeyword-meta.json +10 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/NTIzOjc4OjA.mobileMessage-meta.amp +1 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/NTIzOjc4OjA.mobileMessage-meta.json +61 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/new.mobileMessage-meta.amp +1 -0
- package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/new.mobileMessage-meta.json +60 -0
- package/test/mockRoot/deploy/testInstance/testBU/query/testExistingQuery.query-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/query/testNewQuery.query-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/query/testNewQuery.query-meta.sql +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -1
- package/test/resourceFactory.js +13 -0
- package/test/resources/1111111/accountUser/configure-response.xml +70 -0
- package/test/resources/1111111/accountUser/create-response.xml +97 -0
- package/test/resources/1111111/accountUser/retrieve-response.xml +156 -0
- package/test/resources/1111111/accountUser/update-response.xml +111 -0
- package/test/resources/1111111/accountUserAccount/retrieve-response.xml +77 -0
- package/test/resources/1111111/platform/v1/setup/quickflow/data/get-response.json +455 -0
- package/test/resources/1111111/role/retrieve-response.xml +76 -0
- package/test/resources/1111111/user/build-expected.json +16 -0
- package/test/resources/1111111/user/create-expected.json +21 -0
- package/test/resources/1111111/user/retrieve-expected.json +24 -0
- package/test/resources/1111111/user/template-expected.json +16 -0
- package/test/resources/1111111/user/update-expected.json +21 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/delete-response.json +1 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +17 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +3 -3
- package/test/resources/9999999/automation/v1/queries/get-response.json +21 -4
- package/test/resources/9999999/automation/v1/queries/post-response.json +4 -4
- package/test/resources/9999999/data/v1/customobjectdata/key/{childBU_dataextension_test → testExisting_dataExtension}/rowset/get-response.json +1 -1
- package/test/resources/9999999/dataExtension/build-expected.json +3 -3
- package/test/resources/9999999/dataExtension/create-expected.json +2 -2
- package/test/resources/9999999/dataExtension/create-response.xml +8 -3
- package/test/resources/9999999/dataExtension/retrieve-expected.json +3 -3
- package/test/resources/9999999/dataExtension/retrieve-response.xml +9 -4
- package/test/resources/9999999/dataExtension/template-expected.json +3 -3
- package/test/resources/9999999/dataExtension/update-expected.json +3 -3
- package/test/resources/9999999/dataExtension/update-response.xml +9 -4
- package/test/resources/9999999/dataExtensionField/retrieve-response.xml +14 -9
- package/test/resources/9999999/interaction/v1/interactions/get-response.json +312 -0
- package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/get-response.json +312 -0
- package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/put-response.json +592 -0
- package/test/resources/9999999/journey/build-expected.json +572 -0
- package/test/resources/9999999/journey/get-expected.json +576 -0
- package/test/resources/9999999/journey/put-expected.json +576 -0
- package/test/resources/9999999/journey/template-expected.json +572 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/keyword/NXV4ZFMwTEFwRVczd3RaLUF5X3p5dzo4Njow/get-response.json +42 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/keyword/cTVJaG5oSDJPVUNHcUh6Z3pQT2tVdzo4Njow/delete-response.json +0 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/keyword/get-response.json +1 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/keyword/post-response.json +3 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/message/NTIzOjc4OjA/delete-response.json +0 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/message/NTIzOjc4OjA/get-response.json +106 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/message/NTIzOjc4OjA/post-response.json +0 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/message/NTQ3Ojc4OjA/get-response.json +127 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/message/get-response.json +129 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/message/post-response.json +3 -0
- package/test/resources/9999999/legacy/v1/beta2/data/campaign/get-response.json +29 -0
- package/test/resources/9999999/messaging/v1/email/definitions/post-response.json +1 -1
- package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/get-response.json +1 -1
- package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/patch-response.json +1 -1
- package/test/resources/9999999/mobileKeyword/build-expected.amp +2 -0
- package/test/resources/9999999/mobileKeyword/build-expected.json +9 -0
- package/test/resources/9999999/mobileKeyword/get-expected.amp +2 -0
- package/test/resources/9999999/mobileKeyword/get-expected.json +15 -0
- package/test/resources/9999999/mobileKeyword/post-create-expected.amp +2 -0
- package/test/resources/9999999/mobileKeyword/post-create-expected.json +17 -0
- package/test/resources/9999999/mobileKeyword/template-expected.amp +2 -0
- package/test/resources/9999999/mobileKeyword/template-expected.json +9 -0
- package/test/resources/9999999/mobileMessage/build-expected.amp +1 -0
- package/test/resources/9999999/mobileMessage/build-expected.json +60 -0
- package/test/resources/9999999/mobileMessage/get-expected.amp +1 -0
- package/test/resources/9999999/mobileMessage/get-expected.json +61 -0
- package/test/resources/9999999/mobileMessage/post-create-expected.amp +1 -0
- package/test/resources/9999999/mobileMessage/post-create-expected.json +63 -0
- package/test/resources/9999999/mobileMessage/post-update-expected.amp +1 -0
- package/test/resources/9999999/mobileMessage/post-update-expected.json +61 -0
- package/test/resources/9999999/mobileMessage/template-expected.amp +1 -0
- package/test/resources/9999999/mobileMessage/template-expected.json +60 -0
- package/test/resources/9999999/query/build-expected.json +1 -1
- package/test/resources/9999999/query/get-expected.json +1 -1
- package/test/resources/9999999/query/get2-expected.json +11 -0
- package/test/resources/9999999/query/patch-expected.json +1 -1
- package/test/resources/9999999/query/post-expected.json +1 -1
- package/test/resources/9999999/query/template-expected.json +1 -1
- package/test/resources/9999999/queryDefinition/retrieve-response.xml +30 -0
- package/test/resources/9999999/transactionalEmail/build-expected.json +5 -5
- package/test/resources/9999999/transactionalEmail/get-expected.json +1 -1
- package/test/resources/9999999/transactionalEmail/patch-expected.json +1 -1
- package/test/resources/9999999/transactionalEmail/post-expected.json +1 -1
- package/test/resources/9999999/transactionalEmail/template-expected.json +5 -5
- package/test/resources/9999999/transactionalPush/build-expected.json +2 -2
- package/test/resources/9999999/transactionalPush/template-expected.json +2 -2
- package/test/resources/9999999/transactionalSMS/build-expected.json +3 -3
- package/test/resources/9999999/transactionalSMS/template-expected.json +3 -3
- package/test/{dataExtension.test.js → type.dataExtension.test.js} +78 -21
- package/test/{interaction.test.js → type.journey.test.js} +64 -30
- package/test/type.mobileKeyword.test.js +250 -0
- package/test/type.mobileMessage.test.js +205 -0
- package/test/{query.test.js → type.query.test.js} +102 -5
- package/test/{transactionalEmail.test.js → type.transactionalEmail.test.js} +40 -2
- package/test/{transactionalPush.test.js → type.transactionalPush.test.js} +41 -2
- package/test/{transactionalSMS.test.js → type.transactionalSMS.test.js} +73 -3
- package/test/type.user.test.js +160 -0
- package/test/utils.js +17 -5
- package/types/mcdev.d.js +48 -15
- package/.github/workflows/code-analysis.yml +0 -57
- package/lib/metadataTypes/AccountUser.js +0 -426
- package/lib/metadataTypes/definitions/AccountUser.definition.js +0 -227
- package/test/mockRoot/deploy/testInstance/testBU/interaction/testExisting_interaction.interaction-meta.json +0 -266
- package/test/resources/9999999/interaction/build-expected.json +0 -260
- package/test/resources/9999999/interaction/get-expected.json +0 -264
- package/test/resources/9999999/interaction/put-expected.json +0 -264
- package/test/resources/9999999/interaction/template-expected.json +0 -260
- package/test/resources/9999999/interaction/v1/interactions/put-response.json +0 -280
- /package/test/mockRoot/deploy/testInstance/testBU/{interaction → journey}/testNew_interaction.interaction-meta.json +0 -0
- /package/test/resources/9999999/{interaction → journey}/post-expected.json +0 -0
|
@@ -7,6 +7,7 @@ module.exports = {
|
|
|
7
7
|
},
|
|
8
8
|
hasExtended: false,
|
|
9
9
|
idField: 'queryDefinitionId',
|
|
10
|
+
keyIsFixed: false,
|
|
10
11
|
keyField: 'key',
|
|
11
12
|
nameField: 'name',
|
|
12
13
|
folderIdField: 'categoryId',
|
|
@@ -86,8 +87,8 @@ module.exports = {
|
|
|
86
87
|
template: false,
|
|
87
88
|
},
|
|
88
89
|
targetId: {
|
|
89
|
-
isCreateable:
|
|
90
|
-
isUpdateable:
|
|
90
|
+
isCreateable: true,
|
|
91
|
+
isUpdateable: true,
|
|
91
92
|
retrieving: false,
|
|
92
93
|
template: false,
|
|
93
94
|
},
|
|
@@ -16,6 +16,7 @@ module.exports = {
|
|
|
16
16
|
documentInOneFile: true,
|
|
17
17
|
hasExtended: true,
|
|
18
18
|
idField: 'ObjectID',
|
|
19
|
+
keyIsFixed: false,
|
|
19
20
|
keyField: 'CustomerKey',
|
|
20
21
|
nameField: 'Name',
|
|
21
22
|
createdDateField: 'CreatedDate',
|
|
@@ -77,6 +78,10 @@ module.exports = {
|
|
|
77
78
|
},
|
|
78
79
|
PermissionSets: {
|
|
79
80
|
retrieving: true,
|
|
81
|
+
skipCache: true,
|
|
82
|
+
skipValidation: true,
|
|
83
|
+
},
|
|
84
|
+
c__notAssignable: {
|
|
80
85
|
skipValidation: true,
|
|
81
86
|
},
|
|
82
87
|
},
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/sendclassification.html
|
|
2
|
+
module.exports = {
|
|
3
|
+
bodyIteratorField: 'Results',
|
|
4
|
+
dependencies: [],
|
|
5
|
+
filter: {},
|
|
6
|
+
hasExtended: false,
|
|
7
|
+
idField: 'ObjectID',
|
|
8
|
+
keyIsFixed: null,
|
|
9
|
+
keyField: 'CustomerKey',
|
|
10
|
+
nameField: 'Name',
|
|
11
|
+
createdDateField: 'CreatedDate',
|
|
12
|
+
createdNameField: null,
|
|
13
|
+
lastmodDateField: 'ModifiedDate',
|
|
14
|
+
lastmodNameField: null,
|
|
15
|
+
restPagination: false,
|
|
16
|
+
type: 'sendClassification',
|
|
17
|
+
typeDescription:
|
|
18
|
+
'Lets admins define Delivery Profile, Sender Profile and CAN-SPAM for an email job in a central location.',
|
|
19
|
+
typeRetrieveByDefault: false,
|
|
20
|
+
typeName: 'Send Classification',
|
|
21
|
+
fields: {
|
|
22
|
+
'Client.ID': {
|
|
23
|
+
isCreateable: false,
|
|
24
|
+
isUpdateable: false,
|
|
25
|
+
retrieving: false,
|
|
26
|
+
template: false,
|
|
27
|
+
},
|
|
28
|
+
CreatedDate: {
|
|
29
|
+
isCreateable: false,
|
|
30
|
+
isUpdateable: false,
|
|
31
|
+
retrieving: false,
|
|
32
|
+
template: false,
|
|
33
|
+
},
|
|
34
|
+
ModifiedDate: {
|
|
35
|
+
isCreateable: false,
|
|
36
|
+
isUpdateable: false,
|
|
37
|
+
retrieving: false,
|
|
38
|
+
template: false,
|
|
39
|
+
},
|
|
40
|
+
CustomerKey: {
|
|
41
|
+
isCreateable: false,
|
|
42
|
+
isUpdateable: false,
|
|
43
|
+
retrieving: true,
|
|
44
|
+
template: false,
|
|
45
|
+
},
|
|
46
|
+
ObjectID: {
|
|
47
|
+
isCreateable: false,
|
|
48
|
+
isUpdateable: false,
|
|
49
|
+
retrieving: true,
|
|
50
|
+
template: false,
|
|
51
|
+
},
|
|
52
|
+
Name: {
|
|
53
|
+
isCreateable: false,
|
|
54
|
+
isUpdateable: false,
|
|
55
|
+
retrieving: true,
|
|
56
|
+
template: false,
|
|
57
|
+
},
|
|
58
|
+
Description: {
|
|
59
|
+
isCreateable: false,
|
|
60
|
+
isUpdateable: false,
|
|
61
|
+
retrieving: true,
|
|
62
|
+
template: false,
|
|
63
|
+
},
|
|
64
|
+
PartnerKey: {
|
|
65
|
+
isCreateable: false,
|
|
66
|
+
isUpdateable: false,
|
|
67
|
+
retrieving: false,
|
|
68
|
+
template: false,
|
|
69
|
+
},
|
|
70
|
+
PartnerProperties: {
|
|
71
|
+
isCreateable: false,
|
|
72
|
+
isUpdateable: false,
|
|
73
|
+
retrieving: false,
|
|
74
|
+
template: false,
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
ArchiveEmail: {
|
|
78
|
+
isCreateable: false,
|
|
79
|
+
isUpdateable: false,
|
|
80
|
+
retrieving: true,
|
|
81
|
+
template: true,
|
|
82
|
+
},
|
|
83
|
+
DeliveryProfile: {
|
|
84
|
+
isCreateable: false,
|
|
85
|
+
isUpdateable: false,
|
|
86
|
+
retrieving: false,
|
|
87
|
+
template: false,
|
|
88
|
+
},
|
|
89
|
+
HonorPublicationListOptOutsForTransactionalSends: {
|
|
90
|
+
isCreateable: false,
|
|
91
|
+
isUpdateable: false,
|
|
92
|
+
retrieving: false,
|
|
93
|
+
template: false,
|
|
94
|
+
},
|
|
95
|
+
SendClassificationType: {
|
|
96
|
+
isCreateable: false,
|
|
97
|
+
isUpdateable: false,
|
|
98
|
+
retrieving: true,
|
|
99
|
+
template: true,
|
|
100
|
+
},
|
|
101
|
+
SenderProfile: {
|
|
102
|
+
isCreateable: false,
|
|
103
|
+
isUpdateable: false,
|
|
104
|
+
retrieving: false,
|
|
105
|
+
template: false,
|
|
106
|
+
},
|
|
107
|
+
SendPriority: {
|
|
108
|
+
isCreateable: false,
|
|
109
|
+
isUpdateable: false,
|
|
110
|
+
retrieving: false,
|
|
111
|
+
template: false,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
bodyIteratorField: 'definitions',
|
|
3
|
-
dependencies: ['asset-message', 'dataExtension', 'list', '
|
|
3
|
+
dependencies: ['asset-message', 'dataExtension', 'list', 'journey'],
|
|
4
4
|
hasExtended: false,
|
|
5
5
|
idField: 'definitionId',
|
|
6
|
+
keyIsFixed: true, // sending definitionKey in update call not allowed by API
|
|
6
7
|
keyField: 'definitionKey',
|
|
7
8
|
nameField: 'name',
|
|
8
9
|
createdDateField: 'createdDate',
|
|
@@ -3,6 +3,7 @@ module.exports = {
|
|
|
3
3
|
dependencies: ['mobileCode', 'mobileKeyword'],
|
|
4
4
|
hasExtended: false,
|
|
5
5
|
idField: 'definitionId',
|
|
6
|
+
keyIsFixed: true, // sending definitionKey in update call not allowed by API
|
|
6
7
|
keyField: 'definitionKey',
|
|
7
8
|
nameField: 'name',
|
|
8
9
|
createdDateField: 'createdDate',
|
|
@@ -12,6 +12,7 @@ module.exports = {
|
|
|
12
12
|
hasExtended: false,
|
|
13
13
|
idField: 'ObjectID',
|
|
14
14
|
keepId: true,
|
|
15
|
+
keyIsFixed: false,
|
|
15
16
|
keyField: 'CustomerKey',
|
|
16
17
|
nameField: 'Name',
|
|
17
18
|
folderIdField: 'CategoryID',
|
|
@@ -20,7 +21,8 @@ module.exports = {
|
|
|
20
21
|
lastmodDateField: 'ModifiedDate',
|
|
21
22
|
lastmodNameField: null,
|
|
22
23
|
restPagination: null,
|
|
23
|
-
type: '
|
|
24
|
+
type: 'triggeredSend',
|
|
25
|
+
soapType: 'triggeredSendDefinition',
|
|
24
26
|
typeDescription: 'DEPRECATED: Sends emails via API or DataExtension Event.',
|
|
25
27
|
typeRetrieveByDefault: true,
|
|
26
28
|
typeName: 'Triggered Send',
|
|
@@ -303,7 +305,7 @@ module.exports = {
|
|
|
303
305
|
},
|
|
304
306
|
ObjectID: {
|
|
305
307
|
isCreateable: false,
|
|
306
|
-
isUpdateable:
|
|
308
|
+
isUpdateable: true,
|
|
307
309
|
retrieving: false,
|
|
308
310
|
templating: false,
|
|
309
311
|
},
|
|
@@ -530,7 +532,7 @@ module.exports = {
|
|
|
530
532
|
templating: false,
|
|
531
533
|
},
|
|
532
534
|
r__folder_Path: { skipValidation: true },
|
|
533
|
-
|
|
535
|
+
r__assetMessage_Name_readOnly: { skipValidation: true },
|
|
534
536
|
r__assetMessage_Key: { skipValidation: true },
|
|
535
537
|
r__list_PathName: { skipValidation: true },
|
|
536
538
|
},
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
bodyIteratorField: 'Results',
|
|
3
|
+
dependencies: ['role'],
|
|
4
|
+
folderType: null,
|
|
5
|
+
hasExtended: false,
|
|
6
|
+
idField: 'AccountUserID', // ID contains the same value as AccountUserID but is not required by API
|
|
7
|
+
keepId: true,
|
|
8
|
+
keyIsFixed: false,
|
|
9
|
+
keyField: 'CustomerKey',
|
|
10
|
+
nameField: 'Name',
|
|
11
|
+
createdDateField: 'CreatedDate',
|
|
12
|
+
createdNameField: null,
|
|
13
|
+
lastmodDateField: 'ModifiedDate',
|
|
14
|
+
lastmodNameField: 'Client.ModifiedBy',
|
|
15
|
+
type: 'user',
|
|
16
|
+
soapType: 'AccountUser',
|
|
17
|
+
typeDescription: 'Marketing Cloud users',
|
|
18
|
+
typeName: 'User',
|
|
19
|
+
typeRetrieveByDefault: false,
|
|
20
|
+
stringifyFieldsBeforeTemplate: ['DefaultBusinessUnit', 'c__AssociatedBusinessUnits'],
|
|
21
|
+
fields: {
|
|
22
|
+
AccountUserID: {
|
|
23
|
+
// numeric id, cannot be changed but identifies the useruniquely
|
|
24
|
+
isCreateable: false,
|
|
25
|
+
isUpdateable: true,
|
|
26
|
+
retrieving: true,
|
|
27
|
+
template: false,
|
|
28
|
+
},
|
|
29
|
+
ActiveFlag: { isCreateable: true, isUpdateable: true, retrieving: true, template: true },
|
|
30
|
+
AssociatedBusinessUnits: {
|
|
31
|
+
// not supported by API
|
|
32
|
+
isCreateable: false,
|
|
33
|
+
isUpdateable: false,
|
|
34
|
+
retrieving: false,
|
|
35
|
+
template: false,
|
|
36
|
+
},
|
|
37
|
+
BusinessUnit: {
|
|
38
|
+
// not supported by API
|
|
39
|
+
isCreateable: false,
|
|
40
|
+
isUpdateable: false,
|
|
41
|
+
retrieving: false,
|
|
42
|
+
template: false,
|
|
43
|
+
},
|
|
44
|
+
ChallengeAnswer: {
|
|
45
|
+
// alwasy empty
|
|
46
|
+
isCreateable: false,
|
|
47
|
+
isUpdateable: false,
|
|
48
|
+
retrieving: false,
|
|
49
|
+
template: false,
|
|
50
|
+
},
|
|
51
|
+
ChallengePhrase: {
|
|
52
|
+
// alwasy empty
|
|
53
|
+
isCreateable: false,
|
|
54
|
+
isUpdateable: false,
|
|
55
|
+
retrieving: false,
|
|
56
|
+
template: false,
|
|
57
|
+
},
|
|
58
|
+
'Client.ID': { isCreateable: true, isUpdateable: true, retrieving: false, template: false },
|
|
59
|
+
'Client.ModifiedBy': {
|
|
60
|
+
isCreateable: false,
|
|
61
|
+
isUpdateable: false,
|
|
62
|
+
retrieving: true,
|
|
63
|
+
template: false,
|
|
64
|
+
},
|
|
65
|
+
'Client.PartnerClientKey': {
|
|
66
|
+
isCreateable: false,
|
|
67
|
+
isUpdateable: false,
|
|
68
|
+
retrieving: false,
|
|
69
|
+
template: false,
|
|
70
|
+
},
|
|
71
|
+
CorrelationID: {
|
|
72
|
+
isCreateable: false,
|
|
73
|
+
isUpdateable: false,
|
|
74
|
+
retrieving: false,
|
|
75
|
+
template: false,
|
|
76
|
+
},
|
|
77
|
+
CreatedDate: {
|
|
78
|
+
isCreateable: false,
|
|
79
|
+
isUpdateable: false,
|
|
80
|
+
retrieving: true,
|
|
81
|
+
template: false,
|
|
82
|
+
},
|
|
83
|
+
CustomerKey: { isCreateable: true, isUpdateable: true, retrieving: true, template: true },
|
|
84
|
+
DefaultApplication: {
|
|
85
|
+
// not supported by API
|
|
86
|
+
isCreateable: false,
|
|
87
|
+
isUpdateable: false,
|
|
88
|
+
retrieving: false,
|
|
89
|
+
template: false,
|
|
90
|
+
},
|
|
91
|
+
DefaultBusinessUnit: {
|
|
92
|
+
isCreateable: true,
|
|
93
|
+
isUpdateable: true,
|
|
94
|
+
retrieving: true,
|
|
95
|
+
template: true,
|
|
96
|
+
},
|
|
97
|
+
DefaultBusinessUnitObject: {
|
|
98
|
+
// more complex version of DefaultBusinessUnit thats not needed for deployment
|
|
99
|
+
isCreateable: false,
|
|
100
|
+
isUpdateable: false,
|
|
101
|
+
retrieving: false,
|
|
102
|
+
template: false,
|
|
103
|
+
},
|
|
104
|
+
Delete: { isCreateable: false, isUpdateable: false, retrieving: false, template: false },
|
|
105
|
+
Email: { isCreateable: true, isUpdateable: true, retrieving: true, template: true },
|
|
106
|
+
ID: { isCreateable: false, isUpdateable: false, retrieving: false, template: false },
|
|
107
|
+
IsAPIUser: { isCreateable: true, isUpdateable: true, retrieving: true, template: true },
|
|
108
|
+
IsLocked: {
|
|
109
|
+
// Indicates if account user can or cannot log into their account
|
|
110
|
+
isCreateable: false,
|
|
111
|
+
isUpdateable: false,
|
|
112
|
+
retrieving: true,
|
|
113
|
+
template: false,
|
|
114
|
+
},
|
|
115
|
+
'LanguageLocale.LocaleCode': {
|
|
116
|
+
// seems to always return en-US
|
|
117
|
+
isCreateable: false,
|
|
118
|
+
isUpdateable: false,
|
|
119
|
+
retrieving: false,
|
|
120
|
+
template: false,
|
|
121
|
+
},
|
|
122
|
+
LastSuccessfulLogin: {
|
|
123
|
+
isCreateable: false,
|
|
124
|
+
isUpdateable: false,
|
|
125
|
+
retrieving: true,
|
|
126
|
+
template: false,
|
|
127
|
+
},
|
|
128
|
+
'Locale.LocaleCode': {
|
|
129
|
+
isCreateable: true,
|
|
130
|
+
isUpdateable: true,
|
|
131
|
+
retrieving: true,
|
|
132
|
+
template: true,
|
|
133
|
+
},
|
|
134
|
+
'Locale.ObjectID': {
|
|
135
|
+
isCreateable: false,
|
|
136
|
+
isUpdateable: false,
|
|
137
|
+
retrieving: false,
|
|
138
|
+
template: false,
|
|
139
|
+
},
|
|
140
|
+
'Locale.PartnerKey': {
|
|
141
|
+
isCreateable: false,
|
|
142
|
+
isUpdateable: false,
|
|
143
|
+
retrieving: false,
|
|
144
|
+
template: false,
|
|
145
|
+
},
|
|
146
|
+
ModifiedDate: {
|
|
147
|
+
isCreateable: false,
|
|
148
|
+
isUpdateable: false,
|
|
149
|
+
retrieving: true,
|
|
150
|
+
template: false,
|
|
151
|
+
},
|
|
152
|
+
MustChangePassword: {
|
|
153
|
+
isCreateable: true,
|
|
154
|
+
isUpdateable: true,
|
|
155
|
+
retrieving: true,
|
|
156
|
+
template: true,
|
|
157
|
+
},
|
|
158
|
+
Name: { isCreateable: true, isUpdateable: true, retrieving: true, template: true },
|
|
159
|
+
NotificationEmailAddress: {
|
|
160
|
+
isCreateable: true,
|
|
161
|
+
isUpdateable: true,
|
|
162
|
+
retrieving: true,
|
|
163
|
+
template: true,
|
|
164
|
+
},
|
|
165
|
+
ObjectID: { isCreateable: null, isUpdateable: null, retrieving: false, template: null },
|
|
166
|
+
ObjectState: {
|
|
167
|
+
isCreateable: false,
|
|
168
|
+
isUpdateable: false,
|
|
169
|
+
retrieving: false,
|
|
170
|
+
template: false,
|
|
171
|
+
},
|
|
172
|
+
Owner: { isCreateable: false, isUpdateable: false, retrieving: false, template: false },
|
|
173
|
+
PartnerKey: {
|
|
174
|
+
isCreateable: false,
|
|
175
|
+
isUpdateable: false,
|
|
176
|
+
retrieving: false,
|
|
177
|
+
template: false,
|
|
178
|
+
},
|
|
179
|
+
PartnerProperties: {
|
|
180
|
+
isCreateable: false,
|
|
181
|
+
isUpdateable: false,
|
|
182
|
+
retrieving: false,
|
|
183
|
+
template: false,
|
|
184
|
+
},
|
|
185
|
+
Password: { isCreateable: true, isUpdateable: true, retrieving: false, template: false },
|
|
186
|
+
Roles: { isCreateable: true, isUpdateable: true, retrieving: true, template: true },
|
|
187
|
+
'Roles.Role': {
|
|
188
|
+
skipValidation: true,
|
|
189
|
+
},
|
|
190
|
+
'Roles.Role[].Client': {
|
|
191
|
+
skipValidation: false,
|
|
192
|
+
},
|
|
193
|
+
SsoIdentities: {
|
|
194
|
+
isCreateable: true,
|
|
195
|
+
isUpdateable: true,
|
|
196
|
+
retrieving: false, // retrieve not supported by API
|
|
197
|
+
template: false,
|
|
198
|
+
},
|
|
199
|
+
'SsoIdentities[]': {
|
|
200
|
+
isCreateable: true,
|
|
201
|
+
isUpdateable: true,
|
|
202
|
+
retrieving: false,
|
|
203
|
+
template: false,
|
|
204
|
+
},
|
|
205
|
+
'SsoIdentities[].IsActive': {
|
|
206
|
+
isCreateable: true,
|
|
207
|
+
isUpdateable: true,
|
|
208
|
+
retrieving: false,
|
|
209
|
+
template: false,
|
|
210
|
+
},
|
|
211
|
+
'SsoIdentities[].FederatedID': {
|
|
212
|
+
isCreateable: true,
|
|
213
|
+
isUpdateable: true,
|
|
214
|
+
retrieving: false,
|
|
215
|
+
template: false,
|
|
216
|
+
},
|
|
217
|
+
'TimeZone.ID': {
|
|
218
|
+
isCreateable: true,
|
|
219
|
+
isUpdateable: true,
|
|
220
|
+
retrieving: true,
|
|
221
|
+
template: false,
|
|
222
|
+
},
|
|
223
|
+
'TimeZone.Name': {
|
|
224
|
+
isCreateable: false,
|
|
225
|
+
isUpdateable: false,
|
|
226
|
+
retrieving: true,
|
|
227
|
+
template: true,
|
|
228
|
+
},
|
|
229
|
+
'TimeZone.ObjectID': {
|
|
230
|
+
isCreateable: false,
|
|
231
|
+
isUpdateable: false,
|
|
232
|
+
retrieving: false,
|
|
233
|
+
template: false,
|
|
234
|
+
},
|
|
235
|
+
'TimeZone.PartnerKey': {
|
|
236
|
+
isCreateable: false,
|
|
237
|
+
isUpdateable: false,
|
|
238
|
+
retrieving: false,
|
|
239
|
+
template: false,
|
|
240
|
+
},
|
|
241
|
+
Unlock: {
|
|
242
|
+
// do not retrieve it but also do not remove it from retrieve as we are adding it manually
|
|
243
|
+
skipValidation: true,
|
|
244
|
+
isCreateable: false,
|
|
245
|
+
isUpdateable: true,
|
|
246
|
+
template: true,
|
|
247
|
+
},
|
|
248
|
+
UserID: { isCreateable: true, isUpdateable: true, retrieving: true, template: true },
|
|
249
|
+
UserPermissions: {
|
|
250
|
+
// not sure what to do with the reponse yet. might become interesting for the future
|
|
251
|
+
isCreateable: false,
|
|
252
|
+
isUpdateable: false,
|
|
253
|
+
retrieving: false,
|
|
254
|
+
template: false,
|
|
255
|
+
},
|
|
256
|
+
'UserPermissions.PartnerKey': {
|
|
257
|
+
isCreateable: null,
|
|
258
|
+
isUpdateable: null,
|
|
259
|
+
retrieving: false,
|
|
260
|
+
template: false,
|
|
261
|
+
},
|
|
262
|
+
'UserPermissions.ID': {
|
|
263
|
+
skipValidation: true,
|
|
264
|
+
},
|
|
265
|
+
'UserPermissions.ObjectID': {
|
|
266
|
+
isCreateable: null,
|
|
267
|
+
isUpdateable: null,
|
|
268
|
+
retrieving: false,
|
|
269
|
+
template: false,
|
|
270
|
+
},
|
|
271
|
+
'UserPermissions.Name': {
|
|
272
|
+
isCreateable: null,
|
|
273
|
+
isUpdateable: null,
|
|
274
|
+
retrieving: false,
|
|
275
|
+
template: false,
|
|
276
|
+
},
|
|
277
|
+
'UserPermissions.Value': {
|
|
278
|
+
isCreateable: null,
|
|
279
|
+
isUpdateable: null,
|
|
280
|
+
retrieving: false,
|
|
281
|
+
template: false,
|
|
282
|
+
},
|
|
283
|
+
'UserPermissions.Description': {
|
|
284
|
+
isCreateable: null,
|
|
285
|
+
isUpdateable: null,
|
|
286
|
+
retrieving: false,
|
|
287
|
+
template: false,
|
|
288
|
+
},
|
|
289
|
+
'UserPermissions.Delete': {
|
|
290
|
+
isCreateable: null,
|
|
291
|
+
isUpdateable: null,
|
|
292
|
+
retrieving: false,
|
|
293
|
+
template: false,
|
|
294
|
+
},
|
|
295
|
+
'UserPermissions[].PartnerKey': {
|
|
296
|
+
isCreateable: null,
|
|
297
|
+
isUpdateable: null,
|
|
298
|
+
retrieving: false,
|
|
299
|
+
template: false,
|
|
300
|
+
},
|
|
301
|
+
'UserPermissions[].ID': {
|
|
302
|
+
skipValidation: true,
|
|
303
|
+
},
|
|
304
|
+
'UserPermissions[].ObjectID': {
|
|
305
|
+
isCreateable: null,
|
|
306
|
+
isUpdateable: null,
|
|
307
|
+
retrieving: false,
|
|
308
|
+
template: false,
|
|
309
|
+
},
|
|
310
|
+
'UserPermissions[].Name': {
|
|
311
|
+
isCreateable: null,
|
|
312
|
+
isUpdateable: null,
|
|
313
|
+
retrieving: false,
|
|
314
|
+
template: false,
|
|
315
|
+
},
|
|
316
|
+
'UserPermissions[].Value': {
|
|
317
|
+
isCreateable: null,
|
|
318
|
+
isUpdateable: null,
|
|
319
|
+
retrieving: false,
|
|
320
|
+
template: false,
|
|
321
|
+
},
|
|
322
|
+
'UserPermissions[].Description': {
|
|
323
|
+
isCreateable: null,
|
|
324
|
+
isUpdateable: null,
|
|
325
|
+
retrieving: false,
|
|
326
|
+
template: false,
|
|
327
|
+
},
|
|
328
|
+
'UserPermissions[].Delete': {
|
|
329
|
+
isCreateable: null,
|
|
330
|
+
isUpdateable: null,
|
|
331
|
+
retrieving: false,
|
|
332
|
+
template: false,
|
|
333
|
+
},
|
|
334
|
+
c__type: {
|
|
335
|
+
isCreateable: false,
|
|
336
|
+
isUpdateable: false,
|
|
337
|
+
retrieve: null, // handled via script
|
|
338
|
+
template: false,
|
|
339
|
+
},
|
|
340
|
+
c__AssociatedBusinessUnits: {
|
|
341
|
+
skipValidation: true,
|
|
342
|
+
},
|
|
343
|
+
c__RoleNamesGlobal: {
|
|
344
|
+
skipValidation: true,
|
|
345
|
+
},
|
|
346
|
+
c__LocaleCode: {
|
|
347
|
+
skipValidation: true,
|
|
348
|
+
},
|
|
349
|
+
c__TimeZoneName: {
|
|
350
|
+
skipValidation: true,
|
|
351
|
+
},
|
|
352
|
+
c__AccountUserID: {
|
|
353
|
+
isCreateable: false,
|
|
354
|
+
isUpdateable: false,
|
|
355
|
+
retrieve: null, // handled via script
|
|
356
|
+
template: false,
|
|
357
|
+
},
|
|
358
|
+
c__IsLocked_readOnly: {
|
|
359
|
+
isCreateable: false,
|
|
360
|
+
isUpdateable: false,
|
|
361
|
+
retrieve: null, // handled via script
|
|
362
|
+
template: false,
|
|
363
|
+
},
|
|
364
|
+
},
|
|
365
|
+
};
|
package/lib/retrieveChangelog.js
CHANGED
|
@@ -43,8 +43,7 @@ const customDefinition = {
|
|
|
43
43
|
};
|
|
44
44
|
(async function () {
|
|
45
45
|
// get userid>name mapping
|
|
46
|
-
const userList = (await mcdev.retrieve('ACN-Learning/_ParentBU_', '
|
|
47
|
-
.accountUser;
|
|
46
|
+
const userList = (await mcdev.retrieve('ACN-Learning/_ParentBU_', 'user', true)).user;
|
|
48
47
|
// reduce userList to simple id-name map
|
|
49
48
|
for (const key of Object.keys(userList)) {
|
|
50
49
|
userList[userList[key].ID] = userList[key].Name;
|
package/lib/util/auth.js
CHANGED
|
@@ -59,7 +59,7 @@ const Auth = {
|
|
|
59
59
|
return initializedSDKs[credentialKey];
|
|
60
60
|
} else {
|
|
61
61
|
// check existing credentials cached
|
|
62
|
-
authfile
|
|
62
|
+
authfile ||= File.readJsonSync(Util.authFileName);
|
|
63
63
|
const newAuthObj = authfile[buObject.credential];
|
|
64
64
|
// use client_id + MID to ensure a unique combination across instances
|
|
65
65
|
const sessionKey = newAuthObj.client_id + '|' + buObject.mid;
|
|
@@ -93,7 +93,9 @@ function setupSDK(sessionKey, authObject) {
|
|
|
93
93
|
eventHandlers: {
|
|
94
94
|
onLoop: (type, accumulator) => {
|
|
95
95
|
Util.logger.info(
|
|
96
|
-
|
|
96
|
+
Util.getGrayMsg(
|
|
97
|
+
` - Requesting next batch (currently ${accumulator?.length} records)`
|
|
98
|
+
)
|
|
97
99
|
);
|
|
98
100
|
},
|
|
99
101
|
onRefresh: (authObject) => {
|
|
@@ -114,13 +116,31 @@ function setupSDK(sessionKey, authObject) {
|
|
|
114
116
|
);
|
|
115
117
|
Util.logger.errorStack(ex);
|
|
116
118
|
},
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
119
|
+
logRequest: (req) => {
|
|
120
|
+
const msg = JSON.parse(JSON.stringify(req));
|
|
121
|
+
if (msg.url === '/Service.asmx') {
|
|
122
|
+
msg.data = msg.data.replaceAll(
|
|
123
|
+
/<fueloauth(.*)<\/fueloauth>/gim,
|
|
124
|
+
'<fueloauth>*** TOKEN REMOVED ***</fueloauth>'
|
|
125
|
+
);
|
|
126
|
+
} else if (msg.headers?.Authorization) {
|
|
127
|
+
msg.headers.Authorization = 'Bearer *** TOKEN REMOVED ***';
|
|
128
|
+
}
|
|
129
|
+
if (Util.OPTIONS.api === 'cli') {
|
|
130
|
+
console.log(`${Util.color.fgMagenta}API REQUEST >>${Util.color.reset}`, msg); // eslint-disable-line no-console
|
|
131
|
+
} else if (Util.OPTIONS.api === 'log') {
|
|
132
|
+
Util.logger.debug('API REQUEST >> ' + JSON.stringify(msg, null, 2));
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
logResponse: (res) => {
|
|
136
|
+
const msg =
|
|
137
|
+
typeof res.data == 'string' ? res.data : JSON.stringify(res.data, null, 2);
|
|
138
|
+
if (Util.OPTIONS.api === 'cli') {
|
|
139
|
+
console.log(`${Util.color.fgMagenta}API RESPONSE <<${Util.color.reset}`, msg); // eslint-disable-line no-console
|
|
140
|
+
} else if (Util.OPTIONS.api === 'log') {
|
|
141
|
+
Util.logger.debug('API RESPONSE << ' + msg);
|
|
142
|
+
}
|
|
143
|
+
},
|
|
124
144
|
},
|
|
125
145
|
requestAttempts: 4,
|
|
126
146
|
retryOnConnectionError: true,
|
package/lib/util/businessUnit.js
CHANGED
|
@@ -62,9 +62,9 @@ const BusinessUnit = {
|
|
|
62
62
|
currentCredentials.eid = element.ID;
|
|
63
63
|
Util.logger.info(` - ${Util.parentBuName} (${element.Name})`);
|
|
64
64
|
} else {
|
|
65
|
-
const equalizedName = element.Name.
|
|
66
|
-
.
|
|
67
|
-
.
|
|
65
|
+
const equalizedName = element.Name.replaceAll(/[^\w\s]/gi, '') // remove special chars
|
|
66
|
+
.replaceAll(/ +/g, '_') // convert spaces to underscore
|
|
67
|
+
.replaceAll(/__+/g, '_'); // make sure we never have more than one underscore in a row
|
|
68
68
|
myBuList[equalizedName] = element.ID;
|
|
69
69
|
Util.logger.info(
|
|
70
70
|
` - ${element.Name} ${
|