cluedin-widget
Version: 
This is the project for creating and managing widgets in CluedIn.
130 lines (108 loc) • 3.13 kB
JavaScript
import constants from '../constants';
import  { getUsers, getPotentialUsers, getCurrentUser } from '../data/user';
import { getEntityByName } from '../data/entity';
import { unauthorized } from './generic';
var invalidUsers = () => {
    return {
        type: constants.user.INVALID_USERS
    };
};
var requestUsers = () => {
    return {
        type: constants.user.REQUEST_USERS
    }
};
var receiveUsers = ( users ) => {
    return {
        type: constants.user.RECEIVE_USERS,
        data: {
            users
        }
    };
};
var fetchUsers = () => {
    return function( dispatch ) {
        dispatch( requestUsers() );
        return getUsers().then( function( resp ) {
            dispatch( receiveUsers( resp.body ) );
        } ).catch( unauthorized( dispatch, invalidUsers ) );
    };
};
function shouldFetchUsers( state ) {
    return !( state.user.users && state.user.users.length > 0);
}
export function fetchUsersIfNeeded() {
    return ( dispatch, getState ) => {
        if ( shouldFetchUsers( getState() ) ) {
            return dispatch( fetchUsers() )
        }
    };
}
var requestPotentialUsers = () => {
    return {
        type: constants.user.REQUEST_POTENTIAL_USERS
    };
};
var receivePotentialUsers = ( potentialUsers ) => {
    return {
        type: constants.user.RECEIVE_POTENTIAL_USERS,
        data: potentialUsers
    }
};
var invalidPotentialUsers = () => {
    return {
        type: constants.user.INVALID_POTENTIAL_USERS
    }
};
var fetchPotentialUsers = () => {
    return function( dispatch ) {
        dispatch( requestPotentialUsers() );
        return getPotentialUsers().then( function( users ) {
            dispatch( receivePotentialUsers( users ) );
        } ).catch( unauthorized( dispatch, invalidPotentialUsers ) );
    };
};
var shouldFetchPotentialUsers = ( state ) => {
    return !( state.user.potentialUsers && state.user.potentialUsers.length > 0);
};
export function fetchPotentialUsersIfNeeded() {
    return ( dispatch, getState ) => {
        if ( shouldFetchPotentialUsers( getState() ) ) {
            return dispatch( fetchPotentialUsers() )
        }
    };
}
var requestCurrentUser = () => {
    return {
        type: constants.user.REQUEST_CURRENT_USER
    };
};
var receiveCurrentUser = ( user ) => {
    return {
        type: constants.user.RECEIVE_CURRENT_USER,
        data: {
            user
        }
    }
};
var invalidCurrentUser = () => {
    return {
        type: constants.user.INVALID_CURRENT_USER
    };
};
var fetchCurrentUser = () => {
    return function( dispatch ) {
        dispatch( requestCurrentUser() );
        return getCurrentUser().then( function( user ) {
            return getEntityByName( '/Infrastructure/User%23CluedIn:' + user.client.Id ).then( function( userEntity ) {
                user.entity = userEntity;
                dispatch( receiveCurrentUser( user ) );
            } );
        } ).catch( unauthorized( dispatch, invalidCurrentUser ) );
    };
};
export function shouldFetchCurrentUser() {
    return ( dispatch ) => {
        return dispatch( fetchCurrentUser() );
    };
}