diff --git a/@types/lib/metadataTypes/Journey.d.ts.map b/@types/lib/metadataTypes/Journey.d.ts.map index 02289b8a5..c0e7e2f4c 100644 --- a/@types/lib/metadataTypes/Journey.d.ts.map +++ b/@types/lib/metadataTypes/Journey.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAca,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;AAVzD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA+JxC;IAoGD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAwMtC;IAED;;;;;OAKG;IACH,6CAulBC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAsJtC;IAED;;;;;OAKG;IACH,0CA2OC;IA0MD;;;;OAIG;IACH,sCAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CA0Q9B;IAED;;;;;;;;;OASG;IACH,sCAPW,MAAM,OACN,MAAM,QACN,MAAM,WACN,OAAO,eAAe,EAAE,OAAO,UAC/B,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAiD5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAgCvD;IAED;;;;;OAKG;IACH,wBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAsJ9B;CAwIJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA55EwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAca,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;AAVzD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA+JxC;IAoGD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAwMtC;IAED;;;;;OAKG;IACH,6CAulBC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAsJtC;IAED;;;;;OAKG;IACH,0CA2OC;IA0MD;;;;OAIG;IACH,sCAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CA0Q9B;IAED;;;;;;;;;OASG;IACH,sCAPW,MAAM,OACN,MAAM,QACN,MAAM,WACN,OAAO,eAAe,EAAE,OAAO,UAC/B,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAiD5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAgCvD;IAED;;;;;OAKG;IACH,wBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAsJ9B;CA2NJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA/+EwB,mBAAmB"} \ No newline at end of file diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index e062f4e26..fce23fb81 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -2382,8 +2382,7 @@ class Journey extends MetadataType { */ static async pause(keyArr) { let version; - const endpoint = '/interaction/v1/interactions/pause/'; - const stoppedKeyArr = []; + const pausedKeyArr = []; const apiLimit = pLimit(20); const journeyCache = await this.retrieveForCache(); @@ -2392,29 +2391,72 @@ class Journey extends MetadataType { apiLimit(async () => { [key, version] = key.split('/'); if (journeyCache.metadata[key]) { - version ||= journeyCache.metadata[key].version; - try { - await this.client.rest.post( - endpoint + - journeyCache.metadata[key].id + - (version === '*' - ? '?allVersions=true' - : `?versionNumber=${version}`), - {} - ); - Util.logger.info(` - Paused ${this.definition.type} ${key}/${version}`); - stoppedKeyArr.push(key); - } catch (ex) { + if (journeyCache.metadata[key].status !== 'Published') { Util.logger.error( - ` - Pausing ${this.definition.type} ${key} failed: ${ex.message}` + ` - Pausing ${this.definition.type} ${key} / ${journeyCache.metadata[key].name} failed: Cannot pause a journey in status ${journeyCache.metadata[key].status}` ); + return; } + switch (journeyCache.metadata[key].definitionType) { + case 'Transactional': { + try { + const response = await this.client.rest.post( + '/interaction/v1/interactions/transactional/pause', + { definitionId: journeyCache.metadata[key].id } + ); + if (response.errors?.length) { + throw new Error(JSON.stringify(response)); + } else { + Util.logger.info( + ` - Paused ${this.definition.type} ${key} / ${journeyCache.metadata[key].name}` + ); + pausedKeyArr.push(key); + } + } catch (ex) { + Util.logger.error( + ` - Pausing ${this.definition.type} ${key} / ${journeyCache.metadata[key].name} failed: ${ex.message}` + ); + } + break; + } + case 'Multistep': { + version ||= journeyCache.metadata[key].version; + try { + await this.client.rest.post( + '/interaction/v1/interactions/pause/' + + journeyCache.metadata[key].id + + (version === '*' + ? '?allVersions=true' + : `?versionNumber=${version}`), + {} + ); + Util.logger.info( + ` - Paused ${this.definition.type} ${key}/${version} / ${journeyCache.metadata[key].name}` + ); + pausedKeyArr.push(key); + } catch (ex) { + Util.logger.error( + ` - Pausing ${this.definition.type} ${key} / ${journeyCache.metadata[key].name} failed: ${ex.message}` + ); + } + break; + } + default: { + Util.logger.error( + ` - Pausing ${this.definition.type} ${key} / ${journeyCache.metadata[key].name} failed: Unknown definitionType '${journeyCache.metadata[key].definitionType}'` + ); + } + } + } else { + Util.logger.error( + ` - Pausing ${this.definition.type} ${key} failed: Journey not found on server` + ); } }) ) ); - return stoppedKeyArr; + return pausedKeyArr; } /** * resumes selected journey versions @@ -2434,25 +2476,66 @@ class Journey extends MetadataType { apiLimit(async () => { [key, version] = key.split('/'); if (journeyCache.metadata[key]) { - version ||= journeyCache.metadata[key].version; - try { - await this.client.rest.post( - endpoint + - journeyCache.metadata[key].id + - (version === '*' - ? '?allVersions=true' - : `?versionNumber=${version}`), - {} - ); - Util.logger.info( - ` - Resumed ${this.definition.type} ${key}/${version}` - ); - resumedKeyArr.push(key); - } catch (ex) { + if (journeyCache.metadata[key].status !== 'Paused') { Util.logger.error( - ` - Resuming ${this.definition.type} ${key} failed: ${ex.message}` + ` - Resuming ${this.definition.type} ${key} / ${journeyCache.metadata[key].name} failed: Cannot pause a journey in status ${journeyCache.metadata[key].status}` ); + return; + } + switch (journeyCache.metadata[key].definitionType) { + case 'Transactional': { + try { + const response = await this.client.rest.post( + '/interaction/v1/interactions/transactional/resume', + { definitionId: journeyCache.metadata[key].id } + ); + if (response.errors?.length) { + throw new Error(JSON.stringify(response)); + } else { + Util.logger.info( + ` - Resumed ${this.definition.type} ${key} / ${journeyCache.metadata[key].name}` + ); + resumedKeyArr.push(key); + } + } catch (ex) { + Util.logger.error( + ` - Resuming ${this.definition.type} ${key} / ${journeyCache.metadata[key].name} failed: ${ex.message}` + ); + } + break; + } + case 'Multistep': { + version ||= journeyCache.metadata[key].version; + try { + await this.client.rest.post( + endpoint + + journeyCache.metadata[key].id + + (version === '*' + ? '?allVersions=true' + : `?versionNumber=${version}`), + {} + ); + Util.logger.info( + ` - Resumed ${this.definition.type} ${key}/${version}` + ); + resumedKeyArr.push(key); + } catch (ex) { + Util.logger.error( + ` - Resuming ${this.definition.type} ${key} / ${journeyCache.metadata[key].name} failed: ${ex.message}` + ); + } + break; + } + default: { + Util.logger.error( + ` - Resuming ${this.definition.type} ${key} / ${journeyCache.metadata[key].name} failed failed: Unknown definitionType '${journeyCache.metadata[key].definitionType}'` + ); + } } + } else { + Util.logger.error( + ` - Resuming ${this.definition.type} ${key} failed: Journey not found on server` + ); } }) )