UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

95 lines (81 loc) 2.97 kB
import {browserHistory} from 'react-router' import Cookie from 'js-cookie' import store from 'common/store' import request from 'common/request' import {get_url_parameter} from 'common/utilities' import {redirect_to_after_login, login, logout} from 'actions/authentication' import {get_logged_in} from 'selectors/authentication' import {alert_info} from 'actions/display' import init from 'common/init' function action_redirect_after_login() { const {authentication: {redirect_to_after_login: path}} = store.getState() browserHistory.push(path) store.dispatch(redirect_to_after_login('/')) } function action_login_with_token(token) { store.dispatch(login(token)) init() } export function action_login(email, password) { return request.post('recruiter_token', {auth: {email, password}}) .then(({jwt: token}) => { Cookie.set('jwt', token, {expires: 366 * 20}) // cookie expires in 20 years action_login_with_token(token) action_redirect_after_login() }) .catch(() => store.dispatch(alert_info("Mot de passe incorrect"))) } export function action_reset_password(email) { return request.post('recruiters/reset_password', {email}) .then(() => store.dispatch(alert_info("Mail de récupération de mot de passe envoyé"))) } export function action_logout({redirect_after_logout = true} = {}) { Cookie.remove('jwt') store.dispatch(logout()) if (redirect_after_logout) { browserHistory.push('/login') } } function is_logged_in({login_if_not_logged_in = true} = {}) { if (get_logged_in(store.getState())) { return true } const token = Cookie.get('jwt') if (token) { if (login_if_not_logged_in) { action_login_with_token(token) } return true } return false } export function try_logging_in() { if (is_logged_in()) { action_redirect_after_login() } } export function action_redirect_if_not_logged_in(path) { if (!is_logged_in()) { store.dispatch(alert_info("Veuillez vous connecter")) store.dispatch(redirect_to_after_login(path)) browserHistory.push('/login') } } export function action_update_password(password) { return request.post(`recruiters/update_password`, {token: get_url_parameter('token'), password}) .then(({email}) => action_login(email, password)) .then(() => store.dispatch(alert_info("Votre mot de passe a été mis à jour"))) } export function action_check_reset_password_token() { return request.get(`recruiters/check_reset_password_token`, {token: get_url_parameter('token')}) } export function action_accept_invitation(password) { return request.post(`recruiters/accept_invitation`, {token: get_url_parameter('token'), password}) .then(({email}) => action_login(email, password)) } export function action_check_invitation_token() { return request.get(`recruiters/check_invitation_token`, {token: get_url_parameter('token')}) } export function action_get_public_profile(email) { return request.get(`public_profile`, {email}) }