From e17abdf34211739032e1dd1506420482bbc2736f Mon Sep 17 00:00:00 2001 From: Rohit Mishra Date: Wed, 17 Mar 2021 17:14:31 +0530 Subject: [PATCH] Removed releases support --- .../src/commands/cm/stack-clone.js | 7 +- .../contentstack-export/src/config/default.js | 1 - .../src/lib/export/releases.js | 60 -------- .../contentstack-import/src/config/default.js | 1 - .../src/lib/import/entries.js | 16 +-- .../src/lib/import/locales.js | 1 - .../src/lib/import/releases.js | 130 ------------------ .../src/lib/import/workflows.js | 4 +- 8 files changed, 17 insertions(+), 203 deletions(-) delete mode 100644 packages/contentstack-export/src/lib/export/releases.js delete mode 100644 packages/contentstack-import/src/lib/import/releases.js diff --git a/packages/contentstack-clone/src/commands/cm/stack-clone.js b/packages/contentstack-clone/src/commands/cm/stack-clone.js index b9df030df6..1e993e4f07 100644 --- a/packages/contentstack-clone/src/commands/cm/stack-clone.js +++ b/packages/contentstack-clone/src/commands/cm/stack-clone.js @@ -15,7 +15,12 @@ class StackCloneCommand extends Command { config.cdn = this.cdaHost const cloneHandler = new CloneHandler(config) let result = await cloneHandler.start() - fs.rmdirSync(path.join(__dirname.split("src")[0], 'contents'), { recursive: true }); + fs.rmdir(path.join(__dirname.split("src")[0], 'contents'), { recursive: true }, (err) => { + if (err) { + throw err; + } + console.log(`Stack cloning process have been completed successfully`); + }); } else { console.log("AuthToken is not present in local drive, Hence use 'csdx auth:login' command for login"); } diff --git a/packages/contentstack-export/src/config/default.js b/packages/contentstack-export/src/config/default.js index 8a87183970..201d732c19 100644 --- a/packages/contentstack-export/src/config/default.js +++ b/packages/contentstack-export/src/config/default.js @@ -11,7 +11,6 @@ module.exports = { 'global-fields', 'content-types', 'workflows', - 'releases', 'entries', 'labels', ], diff --git a/packages/contentstack-export/src/lib/export/releases.js b/packages/contentstack-export/src/lib/export/releases.js deleted file mode 100644 index 8a78032649..0000000000 --- a/packages/contentstack-export/src/lib/export/releases.js +++ /dev/null @@ -1,60 +0,0 @@ -/*! - * Contentstack Export - * Copyright (c) 2019 Contentstack LLC - * MIT Licensed - */ - -const mkdirp = require('mkdirp') -const path = require('path') -const chalk = require('chalk') - -let helper = require('../util/helper') -let {addlogs} = require('../util/log') - -const stack = require('../util/contentstack-management-sdk') -let config = require('../../config/default') -let releaseConfig = config.modules.releases -let client - -function ExportReleases() { - this.releases = {} -} - -ExportReleases.prototype = { - start: function (credentialConfig) { - addlogs(config, 'Starting releases export', 'success') - let self = this - config = credentialConfig - client = stack.Client(config) - let releasesFolderPath = path.resolve(config.data, releaseConfig.dirName) - mkdirp.sync(releasesFolderPath) - return new Promise(function (resolve, reject) { - return client.stack({api_key: config.source_stack, management_token: config.management_token}).release().query().find() - .then(async response => { - if (response.items.length !== 0) { - var promiseResult = await Promise.all( - response.items.map(async release => { - const result = await release.item().findAll() - self.releases[release.uid] = {'items': result.items, 'releases': release} - }) - ) - addlogs(config, chalk.green('All the release have been exported successfully'), 'success') - } else if (response.items.length === 0) { - addlogs(config, 'No release were found in the Stack', 'success') - } - helper.writeFile(path.join(releasesFolderPath, releaseConfig.fileName), self.releases) - helper.writeFile(path.join(releasesFolderPath, releaseConfig.releasesList), self.releasesNameJson) - return resolve() - }).catch(function (error) { - if (error.statusCode === 401) { - addlogs(config, chalk.red('You are not allowed to export release, Unless you provide email and password in config', 'error')) - return resolve() - } - addlogs(config, error, 'error') - return reject() - }) - }) - }, -} - -module.exports = new ExportReleases() diff --git a/packages/contentstack-import/src/config/default.js b/packages/contentstack-import/src/config/default.js index 7575360ddd..ddfca0bb17 100644 --- a/packages/contentstack-import/src/config/default.js +++ b/packages/contentstack-import/src/config/default.js @@ -15,7 +15,6 @@ module.exports = { 'content-types', 'workflows', 'entries', - 'releases', 'labels', ], locales: { diff --git a/packages/contentstack-import/src/lib/import/entries.js b/packages/contentstack-import/src/lib/import/entries.js index c24f901d07..8933e794c9 100755 --- a/packages/contentstack-import/src/lib/import/entries.js +++ b/packages/contentstack-import/src/lib/import/entries.js @@ -746,14 +746,14 @@ importEntries.prototype = { addlogs(config, 'field_rules is not available...', 'error') } - return client.stack({api_key: config.target_stack, management_token: config.management_token}).contentType(schema.uid).fetch() - .then(contentTypeResponse => { - contentTypeResponse.schema = schema.schema - contentTypeResponse.update() - return resolve() - }).catch(function (error) { - return reject(error) - }) + let ctObj = client.stack({ api_key: config.target_stack, management_token: config.management_token }).contentType(schema.uid) + Object.assign(ctObj, _.cloneDeep(schema)) + ctObj.update() + .then(() => { + return resolve() + }).catch(function (error) { + return reject(error) + }) }) }, publish: function (langs) { diff --git a/packages/contentstack-import/src/lib/import/locales.js b/packages/contentstack-import/src/lib/import/locales.js index 0b59c80c9f..a67d452e7c 100755 --- a/packages/contentstack-import/src/lib/import/locales.js +++ b/packages/contentstack-import/src/lib/import/locales.js @@ -97,7 +97,6 @@ importLanguages.prototype = { addlogs(config, chalk.green('Languages have been imported successfully!'), 'success') return resolve() }).catch(function (error) { - console.log("errerrer", error); // error while importing languages helper.writeFile(langFailsPath, self.fails) addlogs(config, chalk.red('Language import failed'), 'error') diff --git a/packages/contentstack-import/src/lib/import/releases.js b/packages/contentstack-import/src/lib/import/releases.js deleted file mode 100644 index 097b1a52ec..0000000000 --- a/packages/contentstack-import/src/lib/import/releases.js +++ /dev/null @@ -1,130 +0,0 @@ -/*! - * Contentstack Import - * Copyright (c) 2019 Contentstack LLC - * MIT Licensed - */ - -const mkdirp = require('mkdirp'); -const fs = require('fs'); -const path = require('path'); -const Promise = require('bluebird'); -const chalk = require('chalk'); -const _ = require('lodash') - -const helper = require('../util/fs'); -const { addlogs } = require('../util/log'); -let config = require('../../config/default') -let stack = require('../util/contentstack-management-sdk'); -const { add } = require('lodash'); - -let reqConcurrency = config.concurrency; -let releasesConfig = config.modules.releases; -let releasesFolderPath -let releasesMapperPath -let releasesUidMapperPath -let releasesSuccessPath -let releasesFailsPath -let client - - -function importReleases() { - this.fails = []; - this.success = []; - this.releasesUidMapper = {}; - this.labelUids = []; - if (fs.existsSync(releasesUidMapperPath)) { - this.releasesUidMapper = helper.readFile(releasesUidMapperPath); - this.releasesUidMapper = this.releasesUidMapper || {}; - } -} - -importReleases.prototype = { - start: function (credentialConfig) { - let self = this; - config = credentialConfig - client = stack.Client(config) - addlogs(config, chalk.white('Migrating releases'), 'success') - releasesFolderPath = path.resolve(config.data, releasesConfig.dirName) - self.releases = helper.readFile(path.resolve(releasesFolderPath, releasesConfig.fileName)); - releasesMapperPath = path.resolve(config.data, 'mapper', 'releases'); - releasesUidMapperPath = path.resolve(config.data, 'mapper', 'releases', 'uid-mapping.json'); - assetsUidMapperPath = path.resolve(config.data, 'mapper', 'assets', 'uid-mapping.json'); - entriesUidMapperPath = path.resolve(config.data, 'mapper', 'entries', 'uid-mapping.json'); - releasesSuccessPath = path.resolve(config.data, 'releases', 'success.json'); - releasesFailsPath = path.resolve(config.data, 'releases', 'fails.json'); - mkdirp.sync(releasesMapperPath); - return new Promise(function (resolve, reject) { - if (self.releases == undefined) { - addlogs(config, chalk.white('No releases Found'), 'error'); - return resolve(); - } - self.releasesUids = Object.keys(self.releases); - return Promise.map(self.releasesUids, function (releaseUid) { - let releases = self.releases[releaseUid]; - self.assetsUids = helper.readFile(assetsUidMapperPath) - self.entriesUids = helper.readFile(entriesUidMapperPath) - - if (!self.releasesUidMapper.hasOwnProperty(releaseUid)) { - let requestOption = { - release: releases.releases - }; - - client.stack({ api_key: config.target_stack, management_token: config.management_token }).release().create(requestOption) - .then(async function (response) { - - if (releases.items.length !== 0 ) { - Promise.all( - releases.items.map(async release => { - let item = release - if (item.content_type_uid === 'built_io_upload') { - item.uid = self.assetsUids[item.uid] - } else { - item.uid = self.entriesUids[item.uid] - } - response.item().create({item}) - .then((responseData) => { - // responseData.deploy({environment: ''}) - // addlogs(config, chalk.white("Item added under "+ response.name), 'success') - }).catch((error) => { - addlogs(config, error, 'error') - addlogs(config, chalk.white("Fail to add items under "+ response.name), 'error') - }) - }) - ) - .then(() => { - self.releasesUidMapper[releaseUid] = response.uid; - helper.writeFile(releasesUidMapperPath, self.releasesUidMapper); - return; - }) - } - }).catch(function (error) { - self.fails.push(releases); - if (error.errors.name) { - addlogs(config, chalk.red('releases: \'' + releases.name + '\' already exist'), 'error'); - } else { - addlogs(config, chalk.red('releases: \'' + releases.name + '\' failed to be imported\n'), 'error'); - } - return; - }); - } else { - // the release has already been created - addlogs(config, (chalk.white('The Releases: \'' + releases.name + - '\' already exists. Skipping it to avoid duplicates!')), 'success'); - return; - } - // import 1 releases at a time - }, { - concurrency: reqConcurrency - }).then(function () { - helper.writeFile(releasesSuccessPath, self.success); - addlogs(config, (chalk.green('All releases have been imported successfully!')), 'success'); - return resolve(); - }).catch(function (error) { - helper.writeFile(releasesFailsPath, self.fails); - addlogs(config, chalk.red('Releases import failed'), 'error'); - return reject(error); - }); - }); - } -} -module.exports = new importReleases(); \ No newline at end of file diff --git a/packages/contentstack-import/src/lib/import/workflows.js b/packages/contentstack-import/src/lib/import/workflows.js index 7698d2382a..ed653f1ddc 100644 --- a/packages/contentstack-import/src/lib/import/workflows.js +++ b/packages/contentstack-import/src/lib/import/workflows.js @@ -73,8 +73,10 @@ importWorkflows.prototype = { self.fails.push(workflow); if (error.errors.name) { addlogs(config, chalk.red('workflow: \'' + workflow.name + '\' already exist'), 'error'); + } else if (error.errors.workflow_stages[0].roles) { + addlogs(config, chalk.red('We do not import roles modules and roles are attached with this workflow'), 'error'); } else { - addlogs(config, chalk.red('workflow: \'' + workflow.name + '\' failed to be imported\n'), 'error'); + addlogs(config, chalk.red('workflow: \'' + workflow.name + '\' already exist'), 'error'); } return; });