Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BREAKING CHANGE] #778 rename triggeredSendDefinition to triggeredSend #795

115 changes: 56 additions & 59 deletions docs/dist/documentation.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/MetadataTypeDefinitions.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const MetadataTypeDefinitions = {
transactionalEmail: require('./metadataTypes/definitions/TransactionalEmail.definition'),
transactionalPush: require('./metadataTypes/definitions/TransactionalPush.definition'),
transactionalSMS: require('./metadataTypes/definitions/TransactionalSMS.definition'),
triggeredSendDefinition: require('./metadataTypes/definitions/TriggeredSendDefinition.definition'),
triggeredSend: require('./metadataTypes/definitions/TriggeredSend.definition'),
};

module.exports = MetadataTypeDefinitions;
2 changes: 1 addition & 1 deletion lib/MetadataTypeInfo.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const MetadataTypeInfo = {
transactionalEmail: require('./metadataTypes/TransactionalEmail'),
transactionalPush: require('./metadataTypes/TransactionalPush'),
transactionalSMS: require('./metadataTypes/TransactionalSMS'),
triggeredSendDefinition: require('./metadataTypes/TriggeredSendDefinition'),
triggeredSend: require('./metadataTypes/TriggeredSend'),
};

module.exports = MetadataTypeInfo;
21 changes: 20 additions & 1 deletion lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,13 @@ class Mcdev {
cache.initCache(buObject);
cred = buObject.credential;
bu = buObject.businessUnit;
// clean up old folders after types were renamed
// TODO: Remove this with version 5.0.0
const renamedTypes = {
event: 'eventDefinition',
fileLocation: 'ftpLocation',
triggeredSend: 'triggeredSendDefinition',
};
Util.logger.info(`\n :: Retrieving ${cred}/${bu}\n`);
const retrieveTypesArr = [];
if (selectedTypesArr) {
Expand All @@ -243,6 +250,18 @@ class Mcdev {
if (!keys) {
// dont delete directories if we are just re-retrieving a single file
await File.remove(File.normalizePath(removePathArr));
// clean up old folders after types were renamed
// TODO: Remove this with version 5.0.0
if (renamedTypes[type]) {
await File.remove(
File.normalizePath([
properties.directories.retrieve,
cred,
bu,
renamedTypes[type],
])
);
}
}
}
}
Expand Down Expand Up @@ -412,7 +431,7 @@ class Mcdev {
static async refresh(businessUnit, type, keyArr) {
Util.logger.info('mcdev:: refresh');
if (!type || !Util._isValidType(type, true)) {
type = 'triggeredSendDefinition';
type = 'triggeredSend';
Util.logger.info(' - setting type to ' + type);
}
const properties = await config.getProperties();
Expand Down
1 change: 0 additions & 1 deletion lib/metadataTypes/AttributeGroup.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ class AttributeGroup extends MetadataType {
retrieveDir,
'/hub/v1/contacts/schema/attributeGroups',
null,
null,
key
);
}
Expand Down
2 changes: 1 addition & 1 deletion lib/metadataTypes/Campaign.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class Campaign extends MetadataType {
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
*/
static async retrieve(retrieveDir, _, __, key) {
const res = await super.retrieveREST(retrieveDir, '/hub/v1/campaigns', null, null, key);
const res = await super.retrieveREST(retrieveDir, '/hub/v1/campaigns', null, key);
// get assignments

const campaignAssets = await Promise.all(
Expand Down
2 changes: 1 addition & 1 deletion lib/metadataTypes/DataExtract.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class DataExtract extends MetadataType {
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise of metadata
*/
static async retrieve(retrieveDir, _, __, key) {
return super.retrieveREST(retrieveDir, '/automation/v1/dataextracts/', null, null, key);
return super.retrieveREST(retrieveDir, '/automation/v1/dataextracts/', null, key);
}
/**
* Retrieves Metadata of Data Extract Activity for caching
Expand Down
2 changes: 1 addition & 1 deletion lib/metadataTypes/DataExtractType.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class DataExtractType extends MetadataType {
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise of metadata
*/
static retrieve(retrieveDir, _, __, key) {
return super.retrieveREST(retrieveDir, '/automation/v1/dataextracttypes/', null, null, key);
return super.retrieveREST(retrieveDir, '/automation/v1/dataextracttypes/', null, key);
}
/**
* Retrieves Metadata of Data Extract Type for caching.
Expand Down
1 change: 0 additions & 1 deletion lib/metadataTypes/Event.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ class Event extends MetadataType {
key ? '/key:' + encodeURIComponent(key) : ''
}?extras=all`,
null,
null,
key
);
}
Expand Down
2 changes: 1 addition & 1 deletion lib/metadataTypes/FileLocation.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class FtpLocation extends MetadataType {
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
*/
static retrieve(retrieveDir, _, __, key) {
return super.retrieveREST(retrieveDir, '/automation/v1/ftplocations/', null, null, key);
return super.retrieveREST(retrieveDir, '/automation/v1/ftplocations/', null, key);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion lib/metadataTypes/FileTransfer.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class FileTransfer extends MetadataType {
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
*/
static async retrieve(retrieveDir, _, __, key) {
return super.retrieveREST(retrieveDir, '/automation/v1/filetransfers/', null, null, key);
return super.retrieveREST(retrieveDir, '/automation/v1/filetransfers/', null, key);
}
/**
* Retrieves Metadata of FileTransfer Activity for caching
Expand Down
2 changes: 1 addition & 1 deletion lib/metadataTypes/Filter.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Filter extends MetadataType {
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
*/
static async retrieve(retrieveDir, _, __, key) {
return super.retrieveREST(retrieveDir, '/automation/v1/filters/', null, null, key);
return super.retrieveREST(retrieveDir, '/automation/v1/filters/', null, key);
}
}

Expand Down
4 changes: 2 additions & 2 deletions lib/metadataTypes/Folder.js
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ class Folder extends MetadataType {
}
const path = metadataEntry.Path;
try {
const response = await super.createSOAP(metadataEntry, 'DataFolder', true);
const response = await super.createSOAP(metadataEntry, true);
if (response) {
response.Results[0].Object = metadataEntry;
response.Results[0].Object.ID = response.Results[0].NewID;
Expand Down Expand Up @@ -368,7 +368,7 @@ class Folder extends MetadataType {
static async update(metadataEntry) {
const path = metadataEntry.Path;
try {
const response = await super.updateSOAP(metadataEntry, 'DataFolder', true);
const response = await super.updateSOAP(metadataEntry, true);
if (response) {
response.Results[0].Object = metadataEntry;
response.Results[0].Object.CustomerKey = metadataEntry.CustomerKey;
Expand Down
2 changes: 1 addition & 1 deletion lib/metadataTypes/ImportFile.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class ImportFile extends MetadataType {
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
*/
static retrieve(retrieveDir, _, __, key) {
return super.retrieveREST(retrieveDir, '/automation/v1/imports/', null, null, key);
return super.retrieveREST(retrieveDir, '/automation/v1/imports/', null, key);
}

/**
Expand Down
9 changes: 4 additions & 5 deletions lib/metadataTypes/Interaction.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ class Interaction extends MetadataType {
retrieveDir,
`${uri}${singleKey}?extras=${extras}`,
null,
null,
key
);
} else {
Expand Down Expand Up @@ -337,7 +336,7 @@ class Interaction extends MetadataType {
if (item.configurationArguments?.triggeredSendKey) {
// triggeredSendKey is not always set but triggeredSendId is
cache.searchForField(
'triggeredSendDefinition',
'triggeredSend',
item.configurationArguments.triggeredSendKey,
'CustomerKey',
'CustomerKey'
Expand All @@ -346,7 +345,7 @@ class Interaction extends MetadataType {
} else if (item.configurationArguments?.triggeredSendId) {
// triggeredSendKey is not always set but triggeredSendId is
item.configurationArguments.triggeredSendKey = cache.searchForField(
'triggeredSendDefinition',
'triggeredSend',
item.configurationArguments.triggeredSendId,
'ObjectID',
'CustomerKey'
Expand All @@ -357,7 +356,7 @@ class Interaction extends MetadataType {
Util.logger.warn(
` - ${this.definition.type} '${metadata[this.definition.nameField]}' (${
metadata[this.definition.keyField]
}): Could not find triggeredSendDefinition (${ex.message})`
}): Could not find triggeredSend (${ex.message})`
);
}
}
Expand Down Expand Up @@ -562,7 +561,7 @@ class Interaction extends MetadataType {
}
// triggeredSendKey is not always set but triggeredSendId is
item.configurationArguments.triggeredSendId = cache.searchForField(
'triggeredSendDefinition',
'triggeredSend',
item.configurationArguments.triggeredSendKey,
'CustomerKey',
'ObjectID'
Expand Down
36 changes: 15 additions & 21 deletions lib/metadataTypes/MetadataType.js
Original file line number Diff line number Diff line change
Expand Up @@ -638,16 +638,15 @@ class MetadataType {
* Creates a single metadata entry via fuel-soap (generic lib not wrapper)
*
* @param {TYPE.MetadataTypeItem} metadataEntry single metadata entry
* @param {string} [overrideType] can be used if the API type differs from the otherwise used type identifier
* @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
* @returns {Promise.<object> | null} Promise of API response or null in case of an error
*/
static async createSOAP(metadataEntry, overrideType, handleOutside) {
static async createSOAP(metadataEntry, handleOutside) {
const soapType = this.definition.soapType || this.definition.type;
try {
this.removeNotCreateableFields(metadataEntry);
const response = await this.client.soap.create(
overrideType ||
this.definition.type.charAt(0).toUpperCase() + this.definition.type.slice(1),
soapType.charAt(0).toUpperCase() + soapType.slice(1),
metadataEntry,
null
);
Expand Down Expand Up @@ -708,16 +707,15 @@ class MetadataType {
* Updates a single metadata entry via fuel-soap (generic lib not wrapper)
*
* @param {TYPE.MetadataTypeItem} metadataEntry single metadata entry
* @param {string} [overrideType] can be used if the API type differs from the otherwise used type identifier
* @param {boolean} [handleOutside] if the API reponse is irregular this allows you to handle it outside of this generic method
* @returns {Promise.<object> | null} Promise of API response or null in case of an error
*/
static async updateSOAP(metadataEntry, overrideType, handleOutside) {
static async updateSOAP(metadataEntry, handleOutside) {
const soapType = this.definition.soapType || this.definition.type;
try {
this.removeNotUpdateableFields(metadataEntry);
const response = await this.client.soap.update(
overrideType ||
this.definition.type.charAt(0).toUpperCase() + this.definition.type.slice(1),
soapType.charAt(0).toUpperCase() + soapType.slice(1),
metadataEntry,
null
);
Expand Down Expand Up @@ -772,13 +770,10 @@ class MetadataType {
static async retrieveSOAP(retrieveDir, requestParams, additionalFields) {
requestParams = requestParams || {};
const fields = this.getFieldNamesToRetrieve(additionalFields);
const soapType = this.definition.soapType || this.definition.type;
let response;
try {
response = await this.client.soap.retrieveBulk(
this.definition.type,
fields,
requestParams
);
response = await this.client.soap.retrieveBulk(soapType, fields, requestParams);
} catch (ex) {
this._handleSOAPErrors(ex, 'retrieving');
return {};
Expand All @@ -805,12 +800,11 @@ class MetadataType {
*
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
* @param {string} uri rest endpoint for GET
* @param {string} [overrideType] force a metadata type (mainly used for Folders)
* @param {TYPE.TemplateMap} [templateVariables] variables to be replaced in the metadata
* @param {string|number} [singleRetrieve] key of single item to filter by
* @returns {Promise.<{metadata: (TYPE.MetadataTypeMap | TYPE.MetadataTypeItem), type: string}>} Promise of item map (single item for templated result)
*/
static async retrieveREST(retrieveDir, uri, overrideType, templateVariables, singleRetrieve) {
static async retrieveREST(retrieveDir, uri, templateVariables, singleRetrieve) {
const response =
this.definition.restPagination && !singleRetrieve
? await this.client.rest.getBulk(uri, this.definition.restPageSize || 500)
Expand All @@ -831,19 +825,18 @@ class MetadataType {
const savedMetadata = await this.saveResults(
results,
retrieveDir,
overrideType,
null,
templateVariables
);
Util.logger.info(
`Downloaded: ${overrideType || this.definition.type} (${
Object.keys(savedMetadata).length
})` + Util.getKeysString(singleRetrieve)
`Downloaded: ${this.definition.type} (${Object.keys(savedMetadata).length})` +
Util.getKeysString(singleRetrieve)
);
}

return {
metadata: templateVariables ? Object.values(results)[0] : results,
type: overrideType || this.definition.type,
type: this.definition.type,
};
}

Expand Down Expand Up @@ -1622,9 +1615,10 @@ class MetadataType {
static async deleteByKeySOAP(customerKey, overrideKeyField, handleOutside) {
const metadata = {};
metadata[overrideKeyField || this.definition.keyField] = customerKey;
const soapType = this.definition.soapType || this.definition.type;
try {
await this.client.soap.delete(
this.definition.type.charAt(0).toUpperCase() + this.definition.type.slice(1),
soapType.charAt(0).toUpperCase() + soapType.slice(1),
metadata,
null
);
Expand Down
1 change: 0 additions & 1 deletion lib/metadataTypes/MobileCode.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ class MobileCode extends MetadataType {
retrieveDir,
'/legacy/v1/beta/mobile/code/' + (key ? `?$where=keyword%20eq%20%27${key}%27%20` : ''),
null,
null,
key
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/metadataTypes/MobileKeyword.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ class MobileKeyword extends MetadataType {
'/legacy/v1/beta/mobile/keyword/?view=simple' +
(key ? `&$where=keyword%20eq%20%27${key}%27%20` : ''),
null,
null,
key
);
}
Expand Down
2 changes: 0 additions & 2 deletions lib/metadataTypes/Query.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ class Query extends MetadataType {
retrieveDir,
'/automation/v1/queries/' + (objectId || ''),
null,
null,
key
);
}
Expand Down Expand Up @@ -99,7 +98,6 @@ class Query extends MetadataType {
return super.retrieveREST(
templateDir,
'/automation/v1/queries/?$filter=Name%20eq%20' + encodeURIComponent(name),
null,
templateVariables
);
}
Expand Down
3 changes: 1 addition & 2 deletions lib/metadataTypes/Script.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class Script extends MetadataType {
*/
static async retrieve(retrieveDir, _, __, key) {
await File.initPrettier('ssjs');
return super.retrieveREST(retrieveDir, '/automation/v1/scripts/', null, null, key);
return super.retrieveREST(retrieveDir, '/automation/v1/scripts/', null, key);
}
/**
* Retrieves script metadata for caching
Expand All @@ -47,7 +47,6 @@ class Script extends MetadataType {
return super.retrieveREST(
templateDir,
'/automation/v1/scripts/?$filter=name%20eq%20' + encodeURIComponent(name),
null,
templateVariables
);
}
Expand Down
8 changes: 1 addition & 7 deletions lib/metadataTypes/SetDefinition.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,7 @@ class SetDefinition extends MetadataType {
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
*/
static retrieve(retrieveDir, _, __, key) {
return super.retrieveREST(
retrieveDir,
'/hub/v1/contacts/schema/setDefinitions',
null,
null,
key
);
return super.retrieveREST(retrieveDir, '/hub/v1/contacts/schema/setDefinitions', null, key);
}
/**
* Retrieves Metadata of schema set definitions for caching.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const cacheTypes = {
*
* @augments MetadataType
*/
class TriggeredSendDefinition extends MetadataType {
class TriggeredSend extends MetadataType {
/**
* Retrieves SOAP based metadata of metadata type into local filesystem. executes callback with retrieved metadata
*
Expand Down Expand Up @@ -73,7 +73,7 @@ class TriggeredSendDefinition extends MetadataType {
static update(metadata, handleOutside) {
// * in case of update and active definition, we need to pause first.
// * this should be done manually to not accidentally pause production queues without restarting them
return super.updateSOAP(metadata, null, handleOutside);
return super.updateSOAP(metadata, handleOutside);
}

/**
Expand Down Expand Up @@ -423,6 +423,6 @@ class TriggeredSendDefinition extends MetadataType {
}

// Assign definition to static attributes
TriggeredSendDefinition.definition = require('../MetadataTypeDefinitions').triggeredSendDefinition;
TriggeredSend.definition = require('../MetadataTypeDefinitions').triggeredSend;

module.exports = TriggeredSendDefinition;
module.exports = TriggeredSend;
Loading