From a82cc05369b8ec222320ff9bfc0b4d0b98178d87 Mon Sep 17 00:00:00 2001 From: harshithad0703 Date: Tue, 26 Mar 2024 16:31:55 +0530 Subject: [PATCH 1/3] fix: added delete stack method and test case --- lib/stack/index.js | 19 +++++++++++++++++-- test/sanity-check/api/asset-test.js | 1 + test/sanity-check/api/delete-test.js | 23 +++++++++++++++++++++++ test/sanity-check/api/stack-test.js | 10 ++++++++++ 4 files changed, 51 insertions(+), 2 deletions(-) diff --git a/lib/stack/index.js b/lib/stack/index.js index f63bb264..2ef5e72e 100644 --- a/lib/stack/index.js +++ b/lib/stack/index.js @@ -2,7 +2,7 @@ import cloneDeep from 'lodash/cloneDeep' import error from '../core/contentstackError' import { UserCollection } from '../user/index' import { Role } from './roles/index' -import { create, query, update, fetch } from '../entity' +import { create, query, update, fetch, deleteEntity } from '../entity' import { ContentType } from './contentType/index' import { GlobalField } from './globalField/index' import { DeliveryToken } from './deliveryToken/index' @@ -259,7 +259,7 @@ export function Stack (http, data) { } /** - * @description Management Tokens are tokens that provide you with read-write access to the content of your stack. + * @description Management Tokens are tokens that provide you with read-write access to the content of your stack. * @param {String} managementTokenUid The UID of the Management Token field you want to get details. * @returns {ManagementToken} Instance of ManagementToken. * @example @@ -730,6 +730,21 @@ export function Stack (http, data) { } return new Taxonomy(http, data) } + + /** + * @description The delete stack call lets you delete the stack. + * @memberof Stack + * @func delete + * @returns {Promise} Promise for Stack instance + * @example + * import * as contentstack from '@contentstack/management' + * const client = contentstack.client() + * + * client.stack({ api_key: 'api_key'}).delete() + * .then((stack) => console.log(stack)) + * + */ + this.delete = deleteEntity(http) } else { /** * @description The Create stack call creates a new stack in your Contentstack account. diff --git a/test/sanity-check/api/asset-test.js b/test/sanity-check/api/asset-test.js index db3e68b4..4aadb5be 100644 --- a/test/sanity-check/api/asset-test.js +++ b/test/sanity-check/api/asset-test.js @@ -59,6 +59,7 @@ describe('Assets api Test', () => { makeAsset().folder().create({ asset: { name: 'Sample Folder' } }) .then((asset) => { folderUID = asset.uid + jsonWrite(asset, 'folder.json') expect(asset.uid).to.be.not.equal(null) expect(asset.name).to.be.equal('Sample Folder') expect(asset.is_dir).to.be.equal(true) diff --git a/test/sanity-check/api/delete-test.js b/test/sanity-check/api/delete-test.js index 6764a85f..3a3c2292 100644 --- a/test/sanity-check/api/delete-test.js +++ b/test/sanity-check/api/delete-test.js @@ -123,6 +123,25 @@ describe('Branch Alias delete api Test', () => { }) }) +describe('Delete Asset Folder api Test', () => { + let folderUid = '' + setup(() => { + const user = jsonReader('loggedinuser.json') + const folder = jsonReader('folder.json') + folderUid = folder.uid + client = contentstackClient(user.authtoken) + }) + it('should delete an environment', done => { + makeAssetFolder(folderUid) + .delete() + .then((data) => { + expect(data.notice).to.be.equal('Folder deleted successfully.') + done() + }) + .catch(done) + }) +}) + function makeEnvironment (uid = null) { return client.stack({ api_key: process.env.API_KEY }).environment(uid) } @@ -138,3 +157,7 @@ function makeDeliveryToken (uid = null) { function makeBranchAlias (uid = null) { return client.stack({ api_key: process.env.API_KEY }).branchAlias(uid) } + +function makeAssetFolder (uid = null) { + return client.stack({ api_key: process.env.API_KEY }).asset().folder(uid) +} diff --git a/test/sanity-check/api/stack-test.js b/test/sanity-check/api/stack-test.js index fa79f853..3377a110 100644 --- a/test/sanity-check/api/stack-test.js +++ b/test/sanity-check/api/stack-test.js @@ -157,6 +157,16 @@ describe('Stack api Test', () => { }) .catch(done) }) + + it('should delete stack', done => { + client.stack({ api_key: stacks.api_key }) + .delete() + .then((stack) => { + expect(stack.notice).to.be.equal('Stack deleted successfully!') + done() + }) + .catch(done) + }) }) describe('Branch creation api Test', () => { From 6ea8232f8491a8bd42f4623506473576db114fc3 Mon Sep 17 00:00:00 2001 From: harshithad0703 Date: Tue, 26 Mar 2024 16:32:28 +0530 Subject: [PATCH 2/3] chore: updated changeLog and package version --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7138fa22..d34d535f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [v1.15.5](https://github.com/contentstack/contentstack-management-javascript/tree/v1.15.4) (2024-04-02) + - Enhancement + - delete stack implemetation and test cases + ## [v1.15.4](https://github.com/contentstack/contentstack-management-javascript/tree/v1.15.4) (2024-03-26) - Fixes - sanity test and dependency upgrades diff --git a/package-lock.json b/package-lock.json index c3662261..7d1c688e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@contentstack/management", - "version": "1.15.4", + "version": "1.15.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@contentstack/management", - "version": "1.15.4", + "version": "1.15.5", "license": "MIT", "dependencies": { "@slack/bolt": "^3.17.1", diff --git a/package.json b/package.json index c8ed9ca8..2f1e887c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/management", - "version": "1.15.4", + "version": "1.15.5", "description": "The Content Management API is used to manage the content of your Contentstack account", "main": "./dist/node/contentstack-management.js", "browser": "./dist/web/contentstack-management.js", From 281e8ec497db552258443428fa45c51d2cfe0fcc Mon Sep 17 00:00:00 2001 From: harshithad0703 Date: Wed, 27 Mar 2024 11:55:51 +0530 Subject: [PATCH 3/3] chore: :package: updated internal dependencies --- package-lock.json | 77 ++++++++++++++++------------------------------- 1 file changed, 26 insertions(+), 51 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d1c688e..5e0604cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4596,12 +4596,12 @@ "dev": true }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -4609,7 +4609,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -4668,20 +4668,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/body-parser/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/body-parser/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -5148,9 +5134,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { "node": ">= 0.6" } @@ -6200,16 +6186,16 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -17196,12 +17182,12 @@ "dev": true }, "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "requires": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -17209,7 +17195,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -17252,17 +17238,6 @@ "side-channel": "^1.0.4" } }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -17600,9 +17575,9 @@ "dev": true }, "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" }, "cookie-signature": { "version": "1.0.6", @@ -18373,16 +18348,16 @@ } }, "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0",