UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

90 lines (68 loc) 3.59 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.recruiter_full_name = recruiter_full_name; exports.action_update_recruiter = action_update_recruiter; exports.action_create_team = action_create_team; exports.action_invite_recruiter = action_invite_recruiter; exports.action_update_profile = action_update_profile; var _store = require('common/store'); var _store2 = _interopRequireDefault(_store); var _request = require('common/request'); var _request2 = _interopRequireDefault(_request); var _utilities = require('common/utilities'); var _users = require('common/users'); var _recruiters = require('actions/recruiters'); var _profile = require('actions/profile'); var _display = require('actions/display'); var _new_recruiter = require('components/popovers/new_recruiter'); var _new_recruiter2 = _interopRequireDefault(_new_recruiter); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function recruiter_full_name(_ref) { var first_name = _ref.first_name, last_name = _ref.last_name, email = _ref.email; first_name = first_name ? first_name.trim() : ""; last_name = last_name ? last_name.trim() : ""; return (first_name + ' ' + last_name).trim() || email; } function action_update_recruiter(recruiter) { _store2.default.dispatch((0, _recruiters.update_recruiter)(recruiter)); _request2.default.delayed_put('recruiters/' + recruiter.id, { recruiter: recruiter }); } function action_create_team(name) { var _store$getState = _store2.default.getState(), id = _store$getState.profile.agency.id; return _request2.default.post('agencies/' + id + '/teams', { team: { name: name } }).then(function (team) { _store2.default.dispatch((0, _recruiters.store_teams)([team])); return team.id; }); } function action_invite_recruiter() { _store2.default.dispatch((0, _display.show_popover)(_new_recruiter2.default, { invite_recruiter: function invite_recruiter(recruiter) { var email = recruiter.email; if (!email) { _store2.default.dispatch((0, _display.alert_failure)("Veuillez renseigner une adresse mail.")); } else if ((0, _utilities.array_contains)((0, _utilities.array_from_hash)(_store2.default.getState().recruiters.recruiters).map((0, _utilities.property_getter)('email')), email)) { _store2.default.dispatch((0, _display.alert_failure)("Vous avez déjà invité ce recruteur.")); } else if (!(0, _users.is_valid_email)(email)) { _store2.default.dispatch((0, _display.alert_failure)("Ce n'est pas une adresse mail valide.")); } else { _request2.default.post('recruiters', { recruiter: recruiter }).then(function (recruiter) { _store2.default.dispatch((0, _display.alert_success)('Nous avons envoy\xE9 un mail d\'invitation \xE0 ' + recruiter_full_name(recruiter))); _store2.default.dispatch((0, _recruiters.store_recruiters)([recruiter])); }, function () { _store2.default.dispatch((0, _display.alert_warning)('Ce recruteur fait d\xE9j\xE0 partie d\'une autre agence, par cons\xE9quent nous n\'avons pas envoy\xE9 de mail \xE0 ' + recruiter_full_name(recruiter) + '.')); }); _store2.default.dispatch((0, _display.dismiss_popover)()); } } }, 'Ajouter un collaborateur')); } function action_update_profile(profile) { _store2.default.dispatch((0, _profile.update_profile)(profile)); var id = _store2.default.getState().profile.id; return _request2.default.put('recruiters/' + id, { recruiter: profile }); }