cspace-ui
Version:
CollectionSpace user interface for browsers
77 lines (75 loc) • 2.21 kB
JavaScript
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;
;