instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
55 lines (45 loc) • 2.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.get_user_workplaces_count = exports.get_user_assigned_mission_ids = undefined;
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _base = require('./base');
var _mission_workplace = require('selectors/mission_workplace');
var _utilities = require('common/utilities');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var get_raw_mission_users = function get_raw_mission_users(state) {
return state.missions.users;
};
var get_raw_users = function get_raw_users(state) {
return state.users.users;
};
var get_user_assigned_mission_ids = exports.get_user_assigned_mission_ids = (0, _base.tolerant_selector)([get_raw_mission_users, get_raw_users], function (mission_users, users) {
var user_assigned_mission_ids = (0, _utilities.create_hash)((0, _keys2.default)(users), function (user_id) {
return [];
});
(0, _utilities.hash_each)(mission_users, function (mission_id, user_statuses) {
(0, _utilities.hash_each)(user_statuses, function (user_id, status) {
if (status == 'assigned') {
if (!user_assigned_mission_ids[user_id]) {
user_assigned_mission_ids[user_id] = [];
}
user_assigned_mission_ids[user_id].push(mission_id);
}
});
});
return user_assigned_mission_ids;
});
var get_user_workplaces_count = exports.get_user_workplaces_count = (0, _base.tolerant_selector)([get_user_assigned_mission_ids, _mission_workplace.get_missions_workplace_id], function (user_assigned_mission_ids, missions_workplace_id) {
return (0, _utilities.map_hash)(user_assigned_mission_ids, function (mission_ids) {
var workplace_ids = mission_ids.map(function (mission_id) {
return missions_workplace_id[mission_id];
}).filter(Boolean);
return (0, _utilities.map_hash)((0, _utilities.split_array)(workplace_ids, function (workplace_id) {
return workplace_id;
}), function (workplace_ids) {
return workplace_ids.length;
});
});
});