Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import helpers from 'helpers/request';
- import cookie from 'react-cookie';
- import { executionEnvironment } from 'utils/helpers';
- const LOAD = 'auth/LOAD';
- const LOAD_SUCCESS = 'auth/LOAD_SUCCESS';
- const LOAD_FAIL = 'auth/LOAD_FAIL';
- const LOGIN = 'auth/LOGIN';
- const LOGIN_SUCCESS = 'auth/LOGIN_SUCCESS';
- const LOGIN_FAIL = 'auth/LOGIN_FAIL';
- const LOGOUT = 'auth/LOGOUT';
- const LOGOUT_SUCCESS = 'auth/LOGOUT_SUCCESS';
- const LOGOUT_FAIL = 'auth/LOGOUT_FAIL';
- const REGISTRATION = 'auth/REGISTRATION';
- const REGISTRATION_SUCCESS = 'auth/REGISTRATION_SUCCESS';
- const REGISTRATION_FAIL = 'auth/REGISTRATION_FAIL';
- const RESET = 'auth/RESET';
- const RESET_SUCCESS = 'auth/RESET_SUCCESS';
- const RESET_FAIL = 'auth/RESET_FAIL';
- const RESET_CONFIRMATION = 'auth/RESET_CONFIRMATION';
- const RESET_CONFIRMATION_SUCCESS = 'auth/RESET_CONFIRMATION_SUCCESS';
- const RESET_CONFIRMATION_FAIL = 'auth/RESET_CONFIRMATION_FAIL';
- const UPDATE_PASSWORD = 'auth/UPDATE_PASSWORD';
- const UPDATE_PASSWORD_SUCCESS = 'auth/UPDATE_PASSWORD_SUCCESS';
- const UPDATE_PASSWORD_FAIL = 'auth/UPDATE_PASSWORD_FAIL';
- const UPDATE_INFO = 'auth/UPDATE_INFO';
- const UPDATE_INFO_SUCCESS = 'auth/UPDATE_INFO_SUCCESS';
- const UPDATE_INFO_FAIL = 'auth/UPDATE_INFO_FAIL';
- const CONFIRM = 'auth/CONFIRM';
- const CONFIRM_SUCCESS = 'auth/CONFIRM_SUCCESS';
- const CONFIRM_FAIL = 'auth/CONFIRM_FAIL';
- const initialState = {
- loading: false,
- loaded: false,
- loggingIn: false,
- loggingOut: false,
- };
- export default function reducer(state = initialState, action = {}) {
- switch (action.type) {
- case LOAD:
- return {...state, loading: true};
- case LOAD_SUCCESS:
- return {...state, loading: false, loaded: true, user: action.result};
- case LOAD_FAIL:
- return {...state, loading: false, loaded: false, error: action.error};
- case LOGIN:
- return {...state, loggingIn: true};
- case LOGIN_SUCCESS:
- return {...state, loggingIn: false, user: action.result};
- case LOGIN_FAIL:
- return {...state, loggingIn: false, user: null, error: action.error};
- case LOGOUT:
- return {...state, loggingOut: true};
- case LOGOUT_SUCCESS:
- return {...state, loggingOut: false, user: null};
- case LOGOUT_FAIL:
- return {...state, loggingOut: false, error: action.error};
- case REGISTRATION:
- return {...state};
- case REGISTRATION_SUCCESS:
- return {...state, loaded: true};
- case REGISTRATION_FAIL:
- return {...state, user: null, error: action.error, loaded: false};
- case UPDATE_PASSWORD:
- return {...state};
- case UPDATE_PASSWORD_SUCCESS:
- return {...state, success: action.result};
- case UPDATE_PASSWORD_FAIL:
- return {...state, error: action.error};
- case UPDATE_INFO:
- return {...state};
- case UPDATE_INFO_SUCCESS:
- return {...state, success: action.result};
- case UPDATE_INFO_FAIL:
- return {...state, error: action.error};
- case CONFIRM:
- return {...state, loading: true, loaded: false};
- case CONFIRM_SUCCESS:
- return {...state, loading: false, loaded: true, success: action.result, user: action.result};
- case CONFIRM_FAIL:
- return {...state, loading: false, loaded: false, error: action.error};
- case RESET:
- return {...state, loading: true};
- case RESET_SUCCESS:
- return {...state, loading: false};
- case RESET_FAIL:
- return {...state, loading: false};
- case RESET_CONFIRMATION:
- return {...state, loading: true};
- case RESET_CONFIRMATION_SUCCESS:
- return {...state, loading: false, user: action.result};
- case RESET_CONFIRMATION_FAIL:
- return {...state, loading: false, user: null, error: action.error};
- default:
- return state;
- }
- }
- export function isLoaded(store) {
- return !!store.auth && !!store.auth.user;
- }
- export function load() {
- if (executionEnvironment().canUseDOM) {
- const uidClient = cookie.load('uid');
- const clientClient = cookie.load('client');
- const tokenClient = cookie.load('access-token');
- if (!uidClient && !clientClient && !tokenClient) {
- return {
- type: LOAD_FAIL
- };
- }
- }
- return helpers.makeRequest(
- 'get',
- '/auth/validate_token',
- {},
- [LOAD, LOAD_SUCCESS, LOAD_FAIL],
- (data) => {
- const response = data && data.success ? data.data : data.error;
- return response;
- }
- );
- }
- export function login(params) {
- return helpers.makeRequest(
- 'post',
- '/auth/sign_in',
- params,
- [LOGIN, LOGIN_SUCCESS, LOGIN_FAIL],
- (data) => {
- const response = data || {};
- return response;
- }
- );
- }
- export function registration(params) {
- return helpers.makeRequest(
- 'post',
- '/auth',
- params,
- [REGISTRATION, REGISTRATION_SUCCESS, REGISTRATION_FAIL],
- (data) => {
- const response = data || {};
- return response;
- }
- );
- }
- export function reset(resetInfo) {
- return helpers.makeRequest(
- 'post',
- '/auth/password',
- {
- email: resetInfo.email,
- redirect_url: '/'
- },
- [RESET, RESET_SUCCESS, RESET_FAIL],
- (data) => {
- const response = data || {};
- return response;
- }
- );
- }
- export function logout() {
- return helpers.makeRequest(
- 'del',
- '/auth/sign_out',
- {},
- [LOGOUT, LOGOUT_SUCCESS, LOGOUT_FAIL],
- (data) => {
- if (executionEnvironment().canUseDOM) {
- cookie.remove('uid', {path: '/'});
- cookie.remove('client', {path: '/'});
- cookie.remove('access-token', {path: '/'});
- }
- const response = data || {};
- return response;
- }
- );
- }
- export function updatePassword(params) {
- return helpers.makeRequest(
- 'put',
- '/auth/password',
- params,
- [UPDATE_PASSWORD, UPDATE_PASSWORD_SUCCESS, UPDATE_PASSWORD_FAIL],
- (data) => {
- const response = data || {};
- return response;
- }
- );
- }
- export function update(params) {
- return helpers.makeRequest(
- 'put',
- '/auth/',
- params,
- [UPDATE_INFO, UPDATE_INFO_SUCCESS, UPDATE_INFO_FAIL],
- (data) => {
- const response = data || {};
- return response;
- }
- );
- }
- export function confirm(params) {
- return helpers.makeRequest(
- 'get',
- '/auth/confirmation',
- params,
- [CONFIRM, CONFIRM_SUCCESS, CONFIRM_FAIL],
- (data) => {
- const response = data || {};
- return response;
- }
- );
- }
- export function confirmAgain(params) {
- return helpers.makeRequest(
- 'post',
- '/auth/confirmation',
- {
- email: params.email,
- redirect_url: '/'
- },
- [RESET, RESET_SUCCESS, RESET_FAIL],
- (data) => {
- const response = data || {};
- return response;
- }
- );
- }
- export function confirmPassword(params) {
- return helpers.makeRequest(
- 'get',
- '/auth/password/edit',
- params,
- [RESET_CONFIRMATION, RESET_CONFIRMATION_SUCCESS, RESET_CONFIRMATION_FAIL],
- (data) => {
- const response = data || {};
- return response;
- }
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement