instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
90 lines (68 loc) • 3.59 kB
JavaScript
;
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 });
}