Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,9 @@ typings
webpack/
tsconfig.json
.jsdoc.json
jsdocs/
jsdocs/
docdash-template/
.env
.babelrc
.babel-preset.js
.eslintrc.js
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
# Changelog

## [v1.1.2](https://github.com/contentstack/contentstack-management-javascript/tree/v1.1.2) (2021-01-07)
- Bug Fix
- Retry count on multiple request failuer
## [v1.1.1](https://github.com/contentstack/contentstack-management-javascript/tree/v1.1.1) (2020-10-23)
- Bug Fix
- Stack initialization issue
## [v1.1.0](https://github.com/contentstack/contentstack-management-javascript/tree/v1.1.0) (2020-10-23)
- Bug Fix
- Owner of organization can access stack function
Expand Down
10 changes: 5 additions & 5 deletions dist/es-modules/contentstackClient.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ export default function contentstackClient(_ref) {
var http = _ref.http;

/**
* @description The Log in to your account request is used to sign in to your Contentstack account and obtain the authtoken.
* @description The login call is used to sign in to your Contentstack account and obtain the authtoken.
* @memberof ContentstackClient
* @func login
* @param {Object} parameters - login parameters
* @prop {string} paramters.email - email id for user to login
* @prop {string} paramters.password - password for user to login
* @prop {string} paramters.token - token for user to login
* @prop {string} parameters.email - email id for user to login
* @prop {string} parameters.password - password for user to login
* @prop {string} parameters.token - token for user to login
* @returns {Promise}
* @example
* import * as contentstack from '@contentstack/management'
Expand Down Expand Up @@ -97,7 +97,7 @@ export default function contentstackClient(_ref) {
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key', management_token: 'management_token' }).fetch()
* client.stack({ api_key: 'api_key', management_token: 'management_token' }).contentType('content_type_uid').fetch()
* .then((stack) => console.log(stack))
*
*/
Expand Down
29 changes: 23 additions & 6 deletions dist/es-modules/core/contentstack-retry.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,43 @@
import _defineProperty from "@babel/runtime/helpers/defineProperty";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

export default function contentstckRetry(axios, defaultOptions) {
var retryLimit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;
var retryDelay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 300;
var networkError = 0;
axios.interceptors.request.use(function (config) {
config.retryCount = config.retryCount || 0;

if (config.headers.authorization && config.headers.authorization !== undefined) {
delete config.headers.authtoken;
}

return config;
});
axios.interceptors.response.use(function (response) {
// networkError = 0
return response;
}, function (error) {
var wait = retryDelay;
var retryErrorType = null;

if (!defaultOptions.retryOnError) {
return Promise.reject(error);
}

var response = error.response;
networkError = error.config.retryCount;

if (!response) {
retryErrorType = "Server connection";
if (error.code === 'ECONNABORTED') {
error.response = _objectSpread(_objectSpread({}, error.response), {}, {
status: 408,
statusText: "timeout of ".concat(defaultOptions.timeout, "ms exceeded")
});
} else {
return Promise.reject(error);
}
}

if (!defaultOptions.retryOnError) {
return Promise.reject(error);
}

Expand Down Expand Up @@ -53,6 +68,8 @@ export default function contentstckRetry(axios, defaultOptions) {
networkError = 0;
}

error.config.retryCount = networkError;

if (retryErrorType && error.config !== undefined) {
var config = error.config;
defaultOptions.logHandler('warning', "".concat(retryErrorType, " error occurred. Waiting for ").concat(wait, " ms before retrying..."));
Expand Down
2 changes: 1 addition & 1 deletion dist/es-modules/entity.js
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ export var fetch = function fetch(http, type) {
response.data[type]['schema'] = response.data['schema'];
}

return _context9.abrupt("return", Object.assign(this, cloneDeep(response.data[type])));
return _context9.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders)));

case 11:
throw error(response);
Expand Down
4 changes: 2 additions & 2 deletions dist/es-modules/organization/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export function Organization(http, data) {

if (this.org_roles && this.org_roles.filter(function (role) {
return role.admin === true;
}).length > 0) {
}).length > 0 || this.owner && this.owner === true) {
/**
* @description The Get all stacks in an organization call fetches the list of all stacks in an Organization.
* @memberof Organization
Expand Down Expand Up @@ -122,7 +122,7 @@ export function Organization(http, data) {
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key'}).transferOwnership('emailId')
* client.organization('organization_uid').transferOwnership('emailId')
* .then((response) => console.log(response.notice))
*
*/
Expand Down
6 changes: 3 additions & 3 deletions dist/es-modules/stack/bulkOperation/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export function BulkOperation(http) {
* '{{env_name}}/env_uid}}'
* ]
* }
* client.stack({ api_key: 'api_key'}).publish({ details: publishDetails })
* client.stack({ api_key: 'api_key'}).bulkOperation().publish({ details: publishDetails })
* .then((response) => { console.log(response.notice) })
*
*/
Expand Down Expand Up @@ -123,7 +123,7 @@ export function BulkOperation(http) {
* '{{env_name}}/env_uid}}'
* ]
* }
* client.stack({ api_key: 'api_key'}).unpublish({ details: publishDetails })
* client.stack({ api_key: 'api_key'}).bulkOperation().unpublish({ details: publishDetails })
* .then((response) => { console.log(response.notice) })
*
*/
Expand Down Expand Up @@ -187,7 +187,7 @@ export function BulkOperation(http) {
* uid: '{{uid}}'
* }]
* }
* client.stack({ api_key: 'api_key'}).delete({ details: publishDetails })
* client.stack({ api_key: 'api_key'}).bulkOperation().delete({ details: publishDetails })
* .then((response) => { console.log(response.notice) })
*
*/
Expand Down
23 changes: 1 addition & 22 deletions dist/es-modules/stack/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,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, deleteEntity, fetch } from '../entity';
import { create, query, update, fetch } from '../entity';
import { ContentType } from './contentType/index';
import { GlobalField } from './globalField/index';
import { DeliveryToken } from './deliveryToken/index';
Expand Down Expand Up @@ -71,20 +71,6 @@ export function Stack(http, data) {


this.update = update(http, 'stack');
/**
* @description The Delete stack call is used to delete an existing stack permanently from your Contentstack account.
* @memberof Stack
* @func delete
* @returns {Object} Response Object.
* @example
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key'}).delete()
* .then((response) => console.log(response.notice))
*/

this["delete"] = deleteEntity(http);
/**
* @description The fetch stack call fetches stack details.
* @memberof Stack
Expand Down Expand Up @@ -920,13 +906,6 @@ export function Stack(http, data) {
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.organization('org_uid').stack().create({name: 'My New Stack'})
* .then((stack) => console.log(stack))
*
* @example
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack().create({name: 'My New Stack'}, { organization_uid: 'org_uid' })
* .then((stack) => console.log(stack))
*/
Expand Down
10 changes: 5 additions & 5 deletions dist/es5/contentstackClient.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,13 @@ function contentstackClient(_ref) {
var http = _ref.http;

/**
* @description The Log in to your account request is used to sign in to your Contentstack account and obtain the authtoken.
* @description The login call is used to sign in to your Contentstack account and obtain the authtoken.
* @memberof ContentstackClient
* @func login
* @param {Object} parameters - login parameters
* @prop {string} paramters.email - email id for user to login
* @prop {string} paramters.password - password for user to login
* @prop {string} paramters.token - token for user to login
* @prop {string} parameters.email - email id for user to login
* @prop {string} parameters.password - password for user to login
* @prop {string} parameters.token - token for user to login
* @returns {Promise}
* @example
* import * as contentstack from '@contentstack/management'
Expand Down Expand Up @@ -117,7 +117,7 @@ function contentstackClient(_ref) {
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key', management_token: 'management_token' }).fetch()
* client.stack({ api_key: 'api_key', management_token: 'management_token' }).contentType('content_type_uid').fetch()
* .then((stack) => console.log(stack))
*
*/
Expand Down
36 changes: 30 additions & 6 deletions dist/es5/core/contentstack-retry.js
Original file line number Diff line number Diff line change
@@ -1,35 +1,57 @@
"use strict";

var _interopRequireDefault3 = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireDefault2 = _interopRequireDefault3(require("@babel/runtime/helpers/interopRequireDefault"));

Object.defineProperty(exports, "__esModule", {
value: true
});

var _defineProperty2 = require("@babel/runtime/helpers/defineProperty");

var _defineProperty3 = (0, _interopRequireDefault2["default"])(_defineProperty2);

exports["default"] = contentstckRetry;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty3["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function contentstckRetry(axios, defaultOptions) {
var retryLimit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;
var retryDelay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 300;
var networkError = 0;
axios.interceptors.request.use(function (config) {
config.retryCount = config.retryCount || 0;

if (config.headers.authorization && config.headers.authorization !== undefined) {
delete config.headers.authtoken;
}

return config;
});
axios.interceptors.response.use(function (response) {
// networkError = 0
return response;
}, function (error) {
var wait = retryDelay;
var retryErrorType = null;

if (!defaultOptions.retryOnError) {
return Promise.reject(error);
}

var response = error.response;
networkError = error.config.retryCount;

if (!response) {
retryErrorType = "Server connection";
if (error.code === 'ECONNABORTED') {
error.response = _objectSpread(_objectSpread({}, error.response), {}, {
status: 408,
statusText: "timeout of ".concat(defaultOptions.timeout, "ms exceeded")
});
} else {
return Promise.reject(error);
}
}

if (!defaultOptions.retryOnError) {
return Promise.reject(error);
}

Expand Down Expand Up @@ -60,6 +82,8 @@ function contentstckRetry(axios, defaultOptions) {
networkError = 0;
}

error.config.retryCount = networkError;

if (retryErrorType && error.config !== undefined) {
var config = error.config;
defaultOptions.logHandler('warning', "".concat(retryErrorType, " error occurred. Waiting for ").concat(wait, " ms before retrying..."));
Expand Down
2 changes: 1 addition & 1 deletion dist/es5/entity.js
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ var fetch = exports.fetch = function fetch(http, type) {
response.data[type]['schema'] = response.data['schema'];
}

return _context9.abrupt("return", Object.assign(this, (0, _cloneDeep2["default"])(response.data[type])));
return _context9.abrupt("return", new this.constructor(http, parseData(response, this.stackHeaders)));

case 11:
throw (0, _contentstackError2["default"])(response);
Expand Down
4 changes: 2 additions & 2 deletions dist/es5/organization/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ function Organization(http, data) {

if (this.org_roles && this.org_roles.filter(function (role) {
return role.admin === true;
}).length > 0) {
}).length > 0 || this.owner && this.owner === true) {
/**
* @description The Get all stacks in an organization call fetches the list of all stacks in an Organization.
* @memberof Organization
Expand Down Expand Up @@ -155,7 +155,7 @@ function Organization(http, data) {
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key'}).transferOwnership('emailId')
* client.organization('organization_uid').transferOwnership('emailId')
* .then((response) => console.log(response.notice))
*
*/
Expand Down
6 changes: 3 additions & 3 deletions dist/es5/stack/bulkOperation/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ function BulkOperation(http) {
* '{{env_name}}/env_uid}}'
* ]
* }
* client.stack({ api_key: 'api_key'}).publish({ details: publishDetails })
* client.stack({ api_key: 'api_key'}).bulkOperation().publish({ details: publishDetails })
* .then((response) => { console.log(response.notice) })
*
*/
Expand Down Expand Up @@ -146,7 +146,7 @@ function BulkOperation(http) {
* '{{env_name}}/env_uid}}'
* ]
* }
* client.stack({ api_key: 'api_key'}).unpublish({ details: publishDetails })
* client.stack({ api_key: 'api_key'}).bulkOperation().unpublish({ details: publishDetails })
* .then((response) => { console.log(response.notice) })
*
*/
Expand Down Expand Up @@ -210,7 +210,7 @@ function BulkOperation(http) {
* uid: '{{uid}}'
* }]
* }
* client.stack({ api_key: 'api_key'}).delete({ details: publishDetails })
* client.stack({ api_key: 'api_key'}).bulkOperation().delete({ details: publishDetails })
* .then((response) => { console.log(response.notice) })
*
*/
Expand Down
21 changes: 0 additions & 21 deletions dist/es5/stack/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,20 +112,6 @@ function Stack(http, data) {


this.update = (0, _entity.update)(http, 'stack');
/**
* @description The Delete stack call is used to delete an existing stack permanently from your Contentstack account.
* @memberof Stack
* @func delete
* @returns {Object} Response Object.
* @example
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key'}).delete()
* .then((response) => console.log(response.notice))
*/

this["delete"] = (0, _entity.deleteEntity)(http);
/**
* @description The fetch stack call fetches stack details.
* @memberof Stack
Expand Down Expand Up @@ -961,13 +947,6 @@ function Stack(http, data) {
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.organization('org_uid').stack().create({name: 'My New Stack'})
* .then((stack) => console.log(stack))
*
* @example
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack().create({name: 'My New Stack'}, { organization_uid: 'org_uid' })
* .then((stack) => console.log(stack))
*/
Expand Down
2 changes: 1 addition & 1 deletion dist/nativescript/contentstack-management.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dist/node/contentstack-management.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/react-native/contentstack-management.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/web/contentstack-management.js

Large diffs are not rendered by default.

Loading