UNPKG

cspace-ui

Version:
77 lines (75 loc) 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _lodash = require("lodash"); var _session = _interopRequireDefault(require("../helpers/session")); var _actionCodes = require("../constants/actionCodes"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const doRead = (tag, dispatch) => { dispatch({ type: _actionCodes.PROCEDURE_BY_TAG_READ_STARTED, meta: { tag: tag.name } }); const session = (0, _session.default)(); const requestConfig = { params: { servicetag: tag.name } }; return session.read('servicegroups/procedure', requestConfig).then(response => dispatch({ type: _actionCodes.PROCEDURE_BY_TAG_READ_FULFILLED, payload: response, meta: { tag: tag.name } })).catch(error => { dispatch({ type: _actionCodes.PROCEDURE_BY_TAG_READ_REJECTED, meta: { tag: tag.name } }); return Promise.reject(error); }); }; const readProcedures = (response, dispatch) => { let tags = (0, _lodash.get)(response, ['data', 'ns2:abstract-common-list', 'list-item']); if (!tags) { return Promise.resolve(); } if (!Array.isArray(tags)) { tags = [tags]; } const promises = tags.map(tag => doRead(tag, dispatch)); return Promise.all(promises).catch(error => Promise.reject(error)); }; /** * Action for reading the service tags from the servicegroups resource * * If a user has no read permissions and a 403 is encountered, return * without doing anything */ var _default = () => dispatch => { dispatch({ type: _actionCodes.SERVICE_TAGS_READ_STARTED }); const session = (0, _session.default)(); return session.read('servicegroups/procedure/tags').then(response => { dispatch({ type: _actionCodes.SERVICE_TAGS_READ_FULFILLED }); return readProcedures(response, dispatch); }).catch(error => { dispatch({ type: _actionCodes.SERVICE_TAGS_READ_REJECTED, payload: error }); const status = (0, _lodash.get)(error, ['response', 'status']); return status === 403 ? undefined : Promise.reject(error); }); }; exports.default = _default;