UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

55 lines (45 loc) 2.12 kB
'use strict'; 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; }); }); });