-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1258 from Accenture/feature/54-support-sender-pro…
…file-csclsroz-173 Feature/54 support sender profile csclsroz 173
- Loading branch information
Showing
16 changed files
with
730 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
'use strict'; | ||
|
||
import MetadataType from './MetadataType.js'; | ||
import { Util } from '../util/util.js'; | ||
|
||
/** | ||
* @typedef {import('../../types/mcdev.d.js').BuObject} BuObject | ||
* @typedef {import('../../types/mcdev.d.js').CodeExtract} CodeExtract | ||
* @typedef {import('../../types/mcdev.d.js').CodeExtractItem} CodeExtractItem | ||
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem | ||
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff | ||
* @typedef {import('../../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj | ||
* @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap | ||
* @typedef {import('../../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj | ||
* @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams | ||
* @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap | ||
*/ | ||
|
||
/** | ||
* SenderProfile MetadataType | ||
* | ||
* @augments MetadataType | ||
*/ | ||
class SenderProfile extends MetadataType { | ||
/** | ||
* Retrieves SOAP based metadata of metadata type into local filesystem. executes callback with retrieved metadata | ||
* | ||
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved | ||
* @param {void} [_] unused parameter | ||
* @param {void} [__] unused parameter | ||
* @param {void} [___] unused parameter | ||
* @param {string} [key] customer key of single item to retrieve | ||
* @returns {Promise.<MetadataTypeMapObj>} Promise of metadata | ||
*/ | ||
static retrieve(retrieveDir, _, __, ___, key) { | ||
/** @type {SoapRequestParams} */ | ||
let requestParams = null; | ||
if (key) { | ||
requestParams = { | ||
filter: { | ||
leftOperand: 'CustomerKey', | ||
operator: 'equals', | ||
rightOperand: key, | ||
}, | ||
}; | ||
} | ||
return super.retrieveSOAP(retrieveDir, null, requestParams); | ||
} | ||
/** | ||
* Updates a single item | ||
* | ||
* @param {MetadataTypeItem} metadataItem a single item | ||
* @returns {Promise} Promise | ||
*/ | ||
static update(metadataItem) { | ||
return super.updateSOAP(metadataItem); | ||
} | ||
|
||
/** | ||
* Creates a single item | ||
* | ||
* @param {MetadataTypeItem} metadataItem a single item | ||
* @returns {Promise} Promise | ||
*/ | ||
static create(metadataItem) { | ||
return super.createSOAP(metadataItem); | ||
} | ||
|
||
/** | ||
* Delete a metadata item from the specified business unit | ||
* | ||
* @param {string} customerKey Identifier of data extension | ||
* @returns {Promise.<boolean>} deletion success status | ||
*/ | ||
static deleteByKey(customerKey) { | ||
return super.deleteByKeySOAP(customerKey); | ||
} | ||
|
||
/** | ||
* prepares a single item for deployment | ||
* | ||
* @param {MetadataTypeItem} metadata a single query activity | ||
* @returns {Promise.<MetadataTypeItem>} Promise | ||
*/ | ||
static async preDeployTasks(metadata) { | ||
if ( | ||
metadata.UseDefaultRMMRules && | ||
(metadata.AutoForwardToEmailAddress !== '' || metadata.AutoForwardToName !== '') | ||
) { | ||
Util.logger.warn( | ||
` - ${this.definition.type} ${metadata[this.definition.nameField]} (${ | ||
metadata[this.definition.keyField] | ||
}): AutoForwardToEmailAddress and AutoForwardToName will be ignored because UseDefaultRMMRules is set to true; setting UseDefaultRMMRules to false` | ||
); | ||
metadata.UseDefaultRMMRules = false; | ||
} else if ( | ||
!metadata.UseDefaultRMMRules && | ||
(metadata.AutoForwardToEmailAddress === '' || metadata.AutoForwardToName === '') | ||
) { | ||
Util.logger.warn( | ||
` - ${this.definition.type} ${metadata[this.definition.nameField]} (${ | ||
metadata[this.definition.keyField] | ||
}): AutoForwardToEmailAddress and AutoForwardToName are required when UseDefaultRMMRules is set to false; setting UseDefaultRMMRules to true` | ||
); | ||
metadata.UseDefaultRMMRules = true; | ||
} | ||
return metadata; | ||
} | ||
} | ||
|
||
// Assign definition & cache to static attributes | ||
import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js'; | ||
SenderProfile.definition = MetadataTypeDefinitions.senderProfile; | ||
|
||
export default SenderProfile; |
184 changes: 184 additions & 0 deletions
184
lib/metadataTypes/definitions/SenderProfile.definition.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,184 @@ | ||
export default { | ||
bodyIteratorField: 'Results', | ||
dependencies: [], | ||
filter: {}, | ||
hasExtended: false, | ||
idField: 'ObjectID', | ||
keyIsFixed: false, | ||
keyField: 'CustomerKey', | ||
nameField: 'Name', | ||
createdDateField: 'CreatedDate', | ||
createdNameField: null, | ||
lastmodDateField: 'ModifiedDate', | ||
lastmodNameField: null, | ||
restPagination: false, | ||
type: 'senderProfile', | ||
typeDescription: 'Specifies the From information for a send in a central location', | ||
typeRetrieveByDefault: false, | ||
typeName: 'Sender Profile', | ||
fields: { | ||
'Client.ID': { | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
CreatedDate: { | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: true, | ||
template: false, | ||
}, | ||
ModifiedDate: { | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: true, | ||
template: false, | ||
}, | ||
CustomerKey: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
ObjectID: { | ||
isCreateable: false, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: false, | ||
}, | ||
Name: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
Description: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
PartnerKey: { | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
PartnerProperties: { | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
|
||
AutoForwardToEmailAddress: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
AutoForwardToName: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
AutoForwardTriggeredSend: { | ||
// not supported | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
AutoReply: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
AutoReplyTriggeredSend: { | ||
// not supported | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
DataRetentionPeriodLength: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
DataRetentionPeriodUnitOfMeasure: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
DirectForward: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
FromAddress: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
FromName: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
ID: { | ||
// not supported | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
ReplyManagementRuleSet: { | ||
// not supported | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
ReplyToAddress: { | ||
// not supported | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
ReplyToDisplayName: { | ||
// not supported | ||
isCreateable: false, | ||
isUpdateable: false, | ||
retrieving: false, | ||
template: false, | ||
}, | ||
SenderHeaderEmailAddress: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
SenderHeaderName: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
UseDefaultRMMRules: { | ||
isCreateable: true, | ||
isUpdateable: true, | ||
retrieving: true, | ||
template: true, | ||
}, | ||
}, | ||
}; |
14 changes: 14 additions & 0 deletions
14
...ploy/testInstance/testBU/senderProfile/testExisting_senderProfile.senderProfile-meta.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
{ | ||
"CustomerKey": "testExisting_senderProfile", | ||
"Name": "testExisting_senderProfile", | ||
"Description": "updated via deploy", | ||
"FromName": "Jörn Berkefeld", | ||
"FromAddress": "joern.berkefeld@accenture.com", | ||
"UseDefaultRMMRules": false, | ||
"AutoForwardToEmailAddress": "joern.berkefeld@accenture.com", | ||
"AutoForwardToName": "Jörn Berkefeld", | ||
"DirectForward": false, | ||
"AutoReply": false, | ||
"SenderHeaderEmailAddress": "", | ||
"SenderHeaderName": "" | ||
} |
14 changes: 14 additions & 0 deletions
14
...ot/deploy/testInstance/testBU/senderProfile/testNew_senderProfile.senderProfile-meta.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
{ | ||
"CustomerKey": "testNew_senderProfile", | ||
"Name": "testNew_senderProfile", | ||
"Description": "created on deploy", | ||
"FromName": "Jörn Berkefeld", | ||
"FromAddress": "joern.berkefeld@accenture.com", | ||
"UseDefaultRMMRules": false, | ||
"AutoForwardToEmailAddress": "joern.berkefeld@accenture.com", | ||
"AutoForwardToName": "Jörn Berkefeld", | ||
"DirectForward": false, | ||
"AutoReply": false, | ||
"SenderHeaderEmailAddress": "", | ||
"SenderHeaderName": "" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
{ | ||
"AutoForwardToEmailAddress": "", | ||
"AutoForwardToName": "", | ||
"AutoReply": false, | ||
"CustomerKey": "testTemplated_senderProfile", | ||
"Description": "Send from joern.berkefeld@accenture.com", | ||
"DirectForward": false, | ||
"FromAddress": "joern.berkefeld@accenture.com", | ||
"FromName": "Jörn Berkefeld", | ||
"Name": "testTemplated_senderProfile", | ||
"SenderHeaderEmailAddress": "", | ||
"SenderHeaderName": "", | ||
"UseDefaultRMMRules": true | ||
} |
Oops, something went wrong.