UNPKG

@amplience/dc-cli

Version:
106 lines (105 loc) 3.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventCloneStep = void 0; const clone_hub_step_1 = require("../model/clone-hub-step"); const path_1 = require("path"); const export_1 = require("../../event/export"); const import_1 = require("../../event/import"); const fs_1 = require("fs"); const dynamic_content_client_factory_1 = __importDefault(require("../../../services/dynamic-content-client-factory")); class EventCloneStep { constructor() { this.isLimited = true; } getId() { return clone_hub_step_1.CloneHubStepId.Event; } getName() { return 'Clone Events'; } async run(state) { try { state.logFile.appendLine(`Exporting existing events from destination.`); await (0, export_1.handler)({ dir: (0, path_1.join)(state.path, 'oldEvent'), force: true, snapshots: false, logFile: state.logFile, ...state.to }); } catch (e) { state.logFile.appendLine(`ERROR: Could not export existing events. \n${e}`); return false; } try { state.logFile.appendLine(`Exporting events from source.`); await (0, export_1.handler)({ dir: (0, path_1.join)(state.path, 'event'), force: true, snapshots: false, logFile: state.logFile, ...state.from }); } catch (e) { state.logFile.appendLine(`ERROR: Could not export events. \n${e}`); return false; } try { await (0, import_1.handler)({ dir: (0, path_1.join)(state.path, 'event'), logFile: state.logFile, mapFile: state.argv.mapFile, originalIds: false, schedule: true, acceptSnapshotLimits: true, catchup: false, ...state.to }); } catch (e) { state.logFile.appendLine(`ERROR: Could not import events. \n${e}`); return false; } return true; } async revert(state) { const client = (0, dynamic_content_client_factory_1.default)(state.to); const toArchive = state.revertLog.getData('EVENT-CREATE', this.getName()); const toUpdate = state.revertLog.getData('EVENT-UPDATE', this.getName()); for (let i = 0; i < toArchive.length; i++) { try { const event = await client.events.get(toArchive[i]); await event.related.archive(); state.logFile.addAction('ARCHIVE', toArchive[i]); } catch (e) { state.logFile.appendLine(`Couldn't archive event ${toArchive[i]}. Continuing...`); } } if (toUpdate.length > 0 && (0, fs_1.existsSync)((0, path_1.join)(state.path, 'oldEvent'))) { try { await (0, import_1.handler)({ dir: (0, path_1.join)(state.path, 'oldEvent'), logFile: state.logFile, mapFile: state.argv.mapFile, originalIds: true, schedule: true, acceptSnapshotLimits: true, catchup: false, ...state.to }); } catch (e) { state.logFile.appendLine(`ERROR: Could not import old events. \n${e}`); return false; } } return true; } } exports.EventCloneStep = EventCloneStep;