@arun-s-aot/formio-react
Version:
React renderer for formsflow form.io forms.
99 lines (98 loc) • 3.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setUser = exports.logout = exports.initAuth = void 0;
var _lib = require("@arun-s-aot/formiojs/lib");
var type = _interopRequireWildcard(require("./constants"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
const requestUser = () => ({
type: type.USER_REQUEST
});
const receiveUser = user => ({
type: type.USER_REQUEST_SUCCESS,
user
});
const failUser = error => ({
type: type.USER_REQUEST_FAILURE,
error
});
const logoutUser = () => ({
type: type.USER_LOGOUT
});
const submissionAccessUser = submissionAccess => ({
type: type.USER_SUBMISSION_ACCESS,
submissionAccess
});
const formAccessUser = formAccess => ({
type: type.USER_FORM_ACCESS,
formAccess
});
const projectAccessUser = projectAccess => ({
type: type.USER_PROJECT_ACCESS,
projectAccess
});
const rolesUser = roles => ({
type: type.USER_ROLES,
roles
});
function transformSubmissionAccess(forms) {
return Object.values(forms).reduce((result, form) => ({
...result,
[form.name]: form.submissionAccess.reduce((formSubmissionAccess, access) => ({
...formSubmissionAccess,
[access.type]: access.roles
}), {})
}), {});
}
function transformFormAccess(forms) {
return Object.values(forms).reduce((result, form) => ({
...result,
[form.name]: form.access.reduce((formAccess, access) => ({
...formAccess,
[access.type]: access.roles
}), {})
}), {});
}
function transformProjectAccess(projectAccess) {
return projectAccess.reduce((result, access) => ({
...result,
[access.type]: access.roles
}), {});
}
const initAuth = () => dispatch => {
const projectUrl = _lib.Formio.getProjectUrl();
dispatch(requestUser());
Promise.all([_lib.Formio.currentUser(), _lib.Formio.makeStaticRequest(`${projectUrl}/access`).then(result => {
const submissionAccess = transformSubmissionAccess(result.forms);
const formAccess = transformFormAccess(result.forms);
dispatch(submissionAccessUser(submissionAccess));
dispatch(formAccessUser(formAccess));
dispatch(rolesUser(result.roles));
}).catch(() => {}), _lib.Formio.makeStaticRequest(projectUrl).then(project => {
const projectAccess = transformProjectAccess(project.access);
dispatch(projectAccessUser(projectAccess));
}).catch(() => {})]).then(_ref => {
let [user] = _ref;
if (user) {
dispatch(receiveUser(user));
} else {
dispatch(logoutUser());
}
}).catch(result => {
dispatch(failUser(result));
});
};
exports.initAuth = initAuth;
const setUser = user => dispatch => {
_lib.Formio.setUser(user);
dispatch(receiveUser(user));
};
exports.setUser = setUser;
const logout = () => dispatch => {
_lib.Formio.logout().then(() => {
dispatch(logoutUser());
});
};
exports.logout = logout;