Skip to content

Commit

Permalink
#1020: pause journey
Browse files Browse the repository at this point in the history
  • Loading branch information
phjulia committed Oct 7, 2023
1 parent 749f31b commit acd558f
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
30 changes: 30 additions & 0 deletions docs/dist/documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,9 @@ Provides default functionality that can be overwritten by child metadata type cl
<dt><a href="#Automation.">Automation.(metadataMap, originalMetadataMap, key)</a> ⇒ <code>Promise.&lt;object&gt;</code></dt>
<dd><p>helper for <a href="#Automation.postDeployTasks">postDeployTasks</a></p>
</dd>
<dt><a href="#Journey.">Journey.(metadata, definitionKey, versionNumber)</a> ⇒ <code>Promise.&lt;object&gt;</code></dt>
<dd><p>helper for <a href="#Journey.pause">pause</a></p>
</dd>
<dt><a href="#getUserName">getUserName(userList, item, fieldname)</a> ⇒ <code>string</code></dt>
<dd></dd>
<dt><a href="#setupSDK">setupSDK(sessionKey, authObject)</a> ⇒ <code><a href="#SDK">SDK</a></code></dt>
Expand Down Expand Up @@ -2973,6 +2976,7 @@ definitionId: A unique UUID provided by Salesforce Marketing Cloud. Each version
* [.postRetrieveTasks(metadata)](#Journey.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
* [.preDeployTasks(metadata)](#Journey.preDeployTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
* [.createOrUpdate(metadataMap, metadataKey, hasError, metadataToUpdate, metadataToCreate)](#Journey.createOrUpdate) ⇒ <code>&#x27;create&#x27;</code> \| <code>&#x27;update&#x27;</code> \| <code>&#x27;skip&#x27;</code>
* [.pause(keyArr)](#Journey.pause) ⇒ <code>Promise.&lt;boolean&gt;</code>

<a name="Journey.retrieve"></a>

Expand Down Expand Up @@ -3107,6 +3111,18 @@ helper for [upsert](#MetadataType.upsert)
| metadataToUpdate | <code>Array.&lt;TYPE.MetadataTypeItemDiff&gt;</code> | list of items to update |
| metadataToCreate | <code>Array.&lt;TYPE.MetadataTypeItem&gt;</code> | list of items to create |

<a name="Journey.pause"></a>

### Journey.pause(keyArr) ⇒ <code>Promise.&lt;boolean&gt;</code>
a function to pause journey via API

**Kind**: static method of [<code>Journey</code>](#Journey)
**Returns**: <code>Promise.&lt;boolean&gt;</code> - Returns true if all items were executed successfully, otherwise false

| Param | Type | Description |
| --- | --- | --- |
| keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |

<a name="List"></a>

## List ⇐ [<code>MetadataType</code>](#MetadataType)
Expand Down Expand Up @@ -8378,6 +8394,20 @@ helper for [postDeployTasks](#Automation.postDeployTasks)
| originalMetadataMap | <code>TYPE.AutomationMap</code> | metadata to be updated (contains additioanl fields) |
| key | <code>string</code> | current customer key |

<a name="Journey."></a>

## Journey.(metadata, definitionKey, versionNumber) ⇒ <code>Promise.&lt;object&gt;</code>
helper for [pause](#Journey.pause)

**Kind**: global function
**Returns**: <code>Promise.&lt;object&gt;</code> - response: no errors in case of success

| Param | Type | Description |
| --- | --- | --- |
| metadata | <code>TYPE.JourneyItem</code> | journey metadata |
| definitionKey | <code>TYPE.JourneyItem</code> | journey definitionKey |
| versionNumber | <code>TYPE.JourneyItem</code> | journey versionNumber |

<a name="getUserName"></a>

## getUserName(userList, item, fieldname) ⇒ <code>string</code>
Expand Down
52 changes: 52 additions & 0 deletions lib/metadataTypes/Journey.js
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,58 @@ class Journey extends MetadataType {
}
return action;
}
/**
* a function to pause journey via API
*
* @param {string[]} keyArr customerkey of the metadata
* @returns {Promise.<boolean>} Returns true if all items were executed successfully, otherwise false
*/
static async pause(keyArr) {
const metadataMap = {};
const promiseResults = [];
Util.logger.info(`Pausing journeys: ${Object.keys(metadataMap).length}`);
for (const key of keyArr) {
promiseResults.push(await this.#pauseItem(null, key));
} // a51e3ff3-7cdd-4fe5-92cb-8711c5bb7149
// const successCounter = (await Promise.all(promiseResults))
// .filter(Boolean)
// .filter((r) => r.OverallStatus === 'OK').length;

// Util.logger.info(`Paused ${successCounter} of ${keyArr.length} items`);
// return successCounter === keyArr.length;
return true;
}
/**
* helper for {@link Journey.pause}
*
* @param {TYPE.JourneyItem} metadata journey metadata
* @param {TYPE.JourneyItem} definitionKey journey definitionKey
* @param {TYPE.JourneyItem} versionNumber journey versionNumber
* @returns {Promise.<object>} response: no errors in case of success
*/
static async #pauseItem(metadata, definitionKey, versionNumber) {
let response;
try {
response = await (versionNumber
? this.client.rest.post(
`/interaction/v1/interactions/pause/key:${definitionKey}?versionNumber=${versionNumber}`,
metadata
)
: this.client.rest.post(
`/interaction/v1/interactions/pause/key:${definitionKey}`,
metadata
));
Util.logger.info(
` - paused ${this.definition.type}: ${metadata[this.definition.keyField]} / ${
metadata[this.definition.nameField]
}`
);
return response;
} catch {
// this._handleSOAPErrors(ex, 'pausing', metadata, false);
return null;
}
}
}

// Assign definition to static attributes
Expand Down

0 comments on commit acd558f

Please sign in to comment.