]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blob - cmd/web/js/app.js
Set session expire to 7 days.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / app.js
1 'use strict';
2
3 import cookies from './cookies.js';
4 import page from 'page';
5 import React from 'react';
6 import ReactDOM from 'react-dom';
7
8 var App = {};
9 var cookieExpire = 60 * 60 * 7;
10
11 App.errorCodeToMessage = function(code) {
12 switch (code) {
13 case 'invalid_email':
14 return 'The email is not valid';
15 case 'invalid_password':
16 return 'The password is not valid';
17 case 'email_exists':
18 return 'This email is already registered';
19 case 'invalid_credentials':
20 return 'Invalid credentials';
21 case 'invalid_otp':
22 return 'Invalid code !';
23 case 'user_not_confirmed':
24 return 'Your account is being confirmed. Should be very soon !';
25 }
26
27 return code;
28 };
29
30 App.isUserSignedIn = function() {
31 return cookies.hasItem('jwt');
32 };
33
34 App.getUserToken = function() {
35 return cookies.getItem('jwt');
36 };
37
38 App.onUserSignIn = function(token) {
39 if (!token || token === '') {
40 page('/signin');
41 return;
42 }
43
44 cookies.setItem('jwt', token, cookieExpire);
45 page('/me');
46 };
47
48 App.onUserValidateOtp = function(token) {
49 if (!token || token === '') {
50 page('/signin');
51 return;
52 }
53
54 cookies.setItem('jwt', token, cookieExpire);
55 page('/me');
56 };
57
58 App.onUserSignUp = function(token) {
59 if (!token || token === '') {
60 page('/signin');
61 return;
62 }
63
64 cookies.setItem('jwt', token, cookieExpire);
65 page('/not_confirmed');
66 };
67
68 App.getUserJWT = function() {
69 return cookies.getItem('jwt');
70 };
71
72 App.page = function(path, needsAuth, fn) {
73 page(path, function(context) {
74 if (needsAuth && !App.isUserSignedIn()) {
75 page('/signin');
76 return;
77 }
78
79 fn(context);
80 });
81 };
82
83 App.go = function(path) {
84 page(path);
85 };
86
87 App.start = function() {
88 page();
89 };
90
91 App.onInternNavigation = function(href, e) {
92 e.preventDefault();
93 page(href);
94 };
95
96 App.onUserNotAuthorized = function(httpCode, apiCode) {
97 switch (apiCode) {
98 case 'not_authorized':
99 cookies.removeItem('jwt');
100 page('/signin');
101 return false;
102 case 'otp_not_setup':
103 page('/otp/setup');
104 return false;
105 case 'need_otp_validation':
106 page('/otp/validate');
107 return false;
108 case 'user_not_confirmed':
109 page('/not_confirmed');
110 return false;
111 default:
112 return true;
113 }
114 };
115
116 App.mount = function(app) {
117 var root = React.createElement(
118 'div',
119 {className: 'container'},
120 app
121 );
122
123 ReactDOM.unmountComponentAtNode(document.getElementById('app'));
124 ReactDOM.render(root, document.getElementById('app'));
125 };
126
127 export default App;