@digifi-los/reactapp
Version:
121 lines (107 loc) • 5.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _constants = require('../constants');
var _constants2 = _interopRequireDefault(_constants);
var _util = require('../util');
var _util2 = _interopRequireDefault(_util);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//ok okssss
var manifest = {
manifestRequest: function manifestRequest() {
return {
type: _constants2.default.manifest.MANIFEST_DATA_REQUEST,
payload: {}
};
},
receivedManifestData: function receivedManifestData(data) {
return {
type: _constants2.default.manifest.MANIFEST_DATA_SUCCESS,
payload: data
};
},
failedManifestRetrival: function failedManifestRetrival(error) {
return {
type: _constants2.default.manifest.MANIFEST_DATA_FAILURE,
payload: { error: error }
};
},
unauthenticatedManifestRequest: function unauthenticatedManifestRequest() {
return {
type: _constants2.default.manifest.UNAUTHENTICATED_MANIFEST_DATA_REQUEST,
payload: {}
};
},
unauthenticatedReceivedManifestData: function unauthenticatedReceivedManifestData(data) {
return {
type: _constants2.default.manifest.UNAUTHENTICATED_MANIFEST_DATA_SUCCESS,
payload: data
};
},
unauthenticatedFailedManifestRetrival: function unauthenticatedFailedManifestRetrival(error) {
return {
type: _constants2.default.manifest.UNAUTHENTICATED_MANIFEST_DATA_FAILURE,
payload: { error: error }
};
},
fetchManifest: function fetchManifest() {
var _this = this;
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var manifestAction = function manifestAction(dispatch, getState) {
dispatch(_this.manifestRequest());
var state = getState();
var hasCached = void 0;
var basename = typeof state.settings.adminPath === 'string' && state.settings.adminPath !== '/' ? state.settings.basename + state.settings.adminPath : state.settings.basename;
var headers = state.settings.userprofile.options.headers;
var isInitial = state.manifest.authenticated.isInitial;
delete headers.clientid_default;
options.headers = (0, _assign2.default)({}, options.headers, headers);
//add ?refresh=true to below route to reload manifest configuration
return _util2.default.loadCacheConfigurations().then(function (result) {
hasCached = result.manifest && result.manifest.authenticated;
if (hasCached && !options.skip_cache) dispatch(_this.receivedManifestData(result.manifest.authenticated));
var refreshComponents = state.settings.ui.initialization.refresh_components;
var pathname = typeof window !== 'undefined' && window.location.pathname ? window.location.pathname : _this.props.location.pathname;
var params = isInitial || refreshComponents ? '?' + (isInitial ? 'initial=true&location=' + pathname : '') + (refreshComponents ? isInitial ? '&refresh=true' : 'refresh=true' : '') : '';
return _util2.default.fetchComponent(basename + '/load/manifest' + params, options)();
}).then(function (response) {
dispatch(_this.receivedManifestData(response.data.settings));
if (isInitial) _this.fetchManifest((0, _assign2.default)(options, { skip_cache: true }))(dispatch, getState);
return response;
}, function (e) {
if (!hasCached) dispatch(_this.failedManifestRetrival(e));
});
};
return _util2.default.setCacheConfiguration(manifestAction, 'manifest.authenticated');
},
fetchUnauthenticatedManifest: function fetchUnauthenticatedManifest() {
var _this2 = this;
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var unauthenticatedManifestAction = function unauthenticatedManifestAction(dispatch, getState) {
dispatch(_this2.unauthenticatedManifestRequest());
var state = getState();
var hasCached = void 0;
var isInitial = state.manifest.unauthenticated.isInitial;
var basename = typeof state.settings.adminPath === 'string' && state.settings.adminPath !== '/' ? state.settings.basename + state.settings.adminPath : state.settings.basename;
var headers = state.settings && state.settings.userprofile && state.settings.userprofile.options && state.settings.userprofile.options.headers ? state.settings.userprofile.options.headers : {};
//add ?refresh=true to below route to reload manifest configuration
return _util2.default.loadCacheConfigurations().then(function (result) {
hasCached = result.manifest && result.manifest.unauthenticated;
if (hasCached && !options.skip_cache) dispatch(_this2.unauthenticatedReceivedManifestData(result.manifest.unauthenticated));
var pathname = typeof window !== 'undefined' && window.location.pathname ? window.location.pathname : _this2.props.location.pathname;
return _util2.default.fetchComponent(basename + '/load/public_manifest' + (isInitial ? '?initial=true&location=' + pathname : ''), { headers: headers })();
}).then(function (response) {
dispatch(_this2.unauthenticatedReceivedManifestData(response.data.settings));
if (isInitial) _this2.fetchUnauthenticatedManifest({ skip_cache: true })(dispatch, getState);
return response;
}, function (e) {
if (!hasCached) dispatch(_this2.unauthenticatedFailedManifestRetrival(e));
});
};
return _util2.default.setCacheConfiguration(unauthenticatedManifestAction, 'manifest.unauthenticated');
}
};
exports.default = manifest;