Advertisement
Guest User

Untitled

a guest
Mar 27th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.75 KB | None | 0 0
  1. import helpers from 'helpers/request';
  2. import cookie from 'react-cookie';
  3. import { executionEnvironment } from 'utils/helpers';
  4.  
  5. const LOAD = 'auth/LOAD';
  6. const LOAD_SUCCESS = 'auth/LOAD_SUCCESS';
  7. const LOAD_FAIL = 'auth/LOAD_FAIL';
  8.  
  9. const LOGIN = 'auth/LOGIN';
  10. const LOGIN_SUCCESS = 'auth/LOGIN_SUCCESS';
  11. const LOGIN_FAIL = 'auth/LOGIN_FAIL';
  12. const LOGOUT = 'auth/LOGOUT';
  13.  
  14. const LOGOUT_SUCCESS = 'auth/LOGOUT_SUCCESS';
  15. const LOGOUT_FAIL = 'auth/LOGOUT_FAIL';
  16.  
  17. const REGISTRATION = 'auth/REGISTRATION';
  18. const REGISTRATION_SUCCESS = 'auth/REGISTRATION_SUCCESS';
  19. const REGISTRATION_FAIL = 'auth/REGISTRATION_FAIL';
  20.  
  21. const RESET = 'auth/RESET';
  22. const RESET_SUCCESS = 'auth/RESET_SUCCESS';
  23. const RESET_FAIL = 'auth/RESET_FAIL';
  24.  
  25. const RESET_CONFIRMATION = 'auth/RESET_CONFIRMATION';
  26. const RESET_CONFIRMATION_SUCCESS = 'auth/RESET_CONFIRMATION_SUCCESS';
  27. const RESET_CONFIRMATION_FAIL = 'auth/RESET_CONFIRMATION_FAIL';
  28.  
  29. const UPDATE_PASSWORD = 'auth/UPDATE_PASSWORD';
  30. const UPDATE_PASSWORD_SUCCESS = 'auth/UPDATE_PASSWORD_SUCCESS';
  31. const UPDATE_PASSWORD_FAIL = 'auth/UPDATE_PASSWORD_FAIL';
  32.  
  33. const UPDATE_INFO = 'auth/UPDATE_INFO';
  34. const UPDATE_INFO_SUCCESS = 'auth/UPDATE_INFO_SUCCESS';
  35. const UPDATE_INFO_FAIL = 'auth/UPDATE_INFO_FAIL';
  36.  
  37. const CONFIRM = 'auth/CONFIRM';
  38. const CONFIRM_SUCCESS = 'auth/CONFIRM_SUCCESS';
  39. const CONFIRM_FAIL = 'auth/CONFIRM_FAIL';
  40.  
  41. const initialState = {
  42. loading: false,
  43. loaded: false,
  44. loggingIn: false,
  45. loggingOut: false,
  46. };
  47.  
  48. export default function reducer(state = initialState, action = {}) {
  49. switch (action.type) {
  50. case LOAD:
  51. return {...state, loading: true};
  52. case LOAD_SUCCESS:
  53. return {...state, loading: false, loaded: true, user: action.result};
  54. case LOAD_FAIL:
  55. return {...state, loading: false, loaded: false, error: action.error};
  56. case LOGIN:
  57. return {...state, loggingIn: true};
  58. case LOGIN_SUCCESS:
  59. return {...state, loggingIn: false, user: action.result};
  60. case LOGIN_FAIL:
  61. return {...state, loggingIn: false, user: null, error: action.error};
  62. case LOGOUT:
  63. return {...state, loggingOut: true};
  64. case LOGOUT_SUCCESS:
  65. return {...state, loggingOut: false, user: null};
  66. case LOGOUT_FAIL:
  67. return {...state, loggingOut: false, error: action.error};
  68. case REGISTRATION:
  69. return {...state};
  70. case REGISTRATION_SUCCESS:
  71. return {...state, loaded: true};
  72. case REGISTRATION_FAIL:
  73. return {...state, user: null, error: action.error, loaded: false};
  74. case UPDATE_PASSWORD:
  75. return {...state};
  76. case UPDATE_PASSWORD_SUCCESS:
  77. return {...state, success: action.result};
  78. case UPDATE_PASSWORD_FAIL:
  79. return {...state, error: action.error};
  80. case UPDATE_INFO:
  81. return {...state};
  82. case UPDATE_INFO_SUCCESS:
  83. return {...state, success: action.result};
  84. case UPDATE_INFO_FAIL:
  85. return {...state, error: action.error};
  86. case CONFIRM:
  87. return {...state, loading: true, loaded: false};
  88. case CONFIRM_SUCCESS:
  89. return {...state, loading: false, loaded: true, success: action.result, user: action.result};
  90. case CONFIRM_FAIL:
  91. return {...state, loading: false, loaded: false, error: action.error};
  92. case RESET:
  93. return {...state, loading: true};
  94. case RESET_SUCCESS:
  95. return {...state, loading: false};
  96. case RESET_FAIL:
  97. return {...state, loading: false};
  98. case RESET_CONFIRMATION:
  99. return {...state, loading: true};
  100. case RESET_CONFIRMATION_SUCCESS:
  101. return {...state, loading: false, user: action.result};
  102. case RESET_CONFIRMATION_FAIL:
  103. return {...state, loading: false, user: null, error: action.error};
  104. default:
  105. return state;
  106. }
  107. }
  108.  
  109. export function isLoaded(store) {
  110. return !!store.auth && !!store.auth.user;
  111. }
  112.  
  113. export function load() {
  114. if (executionEnvironment().canUseDOM) {
  115. const uidClient = cookie.load('uid');
  116. const clientClient = cookie.load('client');
  117. const tokenClient = cookie.load('access-token');
  118.  
  119. if (!uidClient && !clientClient && !tokenClient) {
  120. return {
  121. type: LOAD_FAIL
  122. };
  123. }
  124. }
  125.  
  126. return helpers.makeRequest(
  127. 'get',
  128. '/auth/validate_token',
  129. {},
  130. [LOAD, LOAD_SUCCESS, LOAD_FAIL],
  131. (data) => {
  132. const response = data && data.success ? data.data : data.error;
  133. return response;
  134. }
  135. );
  136. }
  137.  
  138. export function login(params) {
  139. return helpers.makeRequest(
  140. 'post',
  141. '/auth/sign_in',
  142. params,
  143. [LOGIN, LOGIN_SUCCESS, LOGIN_FAIL],
  144. (data) => {
  145. const response = data || {};
  146. return response;
  147. }
  148. );
  149. }
  150.  
  151. export function registration(params) {
  152. return helpers.makeRequest(
  153. 'post',
  154. '/auth',
  155. params,
  156. [REGISTRATION, REGISTRATION_SUCCESS, REGISTRATION_FAIL],
  157. (data) => {
  158. const response = data || {};
  159. return response;
  160. }
  161. );
  162. }
  163.  
  164. export function reset(resetInfo) {
  165. return helpers.makeRequest(
  166. 'post',
  167. '/auth/password',
  168. {
  169. email: resetInfo.email,
  170. redirect_url: '/'
  171. },
  172. [RESET, RESET_SUCCESS, RESET_FAIL],
  173. (data) => {
  174. const response = data || {};
  175. return response;
  176. }
  177. );
  178. }
  179.  
  180. export function logout() {
  181. return helpers.makeRequest(
  182. 'del',
  183. '/auth/sign_out',
  184. {},
  185. [LOGOUT, LOGOUT_SUCCESS, LOGOUT_FAIL],
  186. (data) => {
  187. if (executionEnvironment().canUseDOM) {
  188. cookie.remove('uid', {path: '/'});
  189. cookie.remove('client', {path: '/'});
  190. cookie.remove('access-token', {path: '/'});
  191. }
  192.  
  193. const response = data || {};
  194. return response;
  195. }
  196. );
  197. }
  198.  
  199. export function updatePassword(params) {
  200. return helpers.makeRequest(
  201. 'put',
  202. '/auth/password',
  203. params,
  204. [UPDATE_PASSWORD, UPDATE_PASSWORD_SUCCESS, UPDATE_PASSWORD_FAIL],
  205. (data) => {
  206. const response = data || {};
  207. return response;
  208. }
  209. );
  210. }
  211.  
  212. export function update(params) {
  213. return helpers.makeRequest(
  214. 'put',
  215. '/auth/',
  216. params,
  217. [UPDATE_INFO, UPDATE_INFO_SUCCESS, UPDATE_INFO_FAIL],
  218. (data) => {
  219. const response = data || {};
  220. return response;
  221. }
  222. );
  223. }
  224.  
  225. export function confirm(params) {
  226. return helpers.makeRequest(
  227. 'get',
  228. '/auth/confirmation',
  229. params,
  230. [CONFIRM, CONFIRM_SUCCESS, CONFIRM_FAIL],
  231. (data) => {
  232. const response = data || {};
  233. return response;
  234. }
  235. );
  236. }
  237.  
  238. export function confirmAgain(params) {
  239. return helpers.makeRequest(
  240. 'post',
  241. '/auth/confirmation',
  242. {
  243. email: params.email,
  244. redirect_url: '/'
  245. },
  246. [RESET, RESET_SUCCESS, RESET_FAIL],
  247. (data) => {
  248. const response = data || {};
  249. return response;
  250. }
  251. );
  252. }
  253.  
  254. export function confirmPassword(params) {
  255. return helpers.makeRequest(
  256. 'get',
  257. '/auth/password/edit',
  258. params,
  259. [RESET_CONFIRMATION, RESET_CONFIRMATION_SUCCESS, RESET_CONFIRMATION_FAIL],
  260. (data) => {
  261. const response = data || {};
  262. return response;
  263. }
  264. );
  265. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement