]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blame - cmd/web/js/app.js
Set session expire to 7 days.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / app.js
CommitLineData
7a9e5112 1'use strict';
2
989fb5c7 3import cookies from './cookies.js';
4import page from 'page';
5import React from 'react';
6import ReactDOM from 'react-dom';
7a9e5112 7
8var App = {};
1fc43bfa 9var cookieExpire = 60 * 60 * 7;
7a9e5112 10
11App.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
30App.isUserSignedIn = function() {
31 return cookies.hasItem('jwt');
32};
33
34App.getUserToken = function() {
35 return cookies.getItem('jwt');
36};
37
38App.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
48App.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
58App.onUserSignUp = function(token) {
59 if (!token || token === '') {
60 page('/signin');
61 return;
62 }
63
64 cookies.setItem('jwt', token, cookieExpire);
adf936f6 65 page('/not_confirmed');
7a9e5112 66};
67
68App.getUserJWT = function() {
69 return cookies.getItem('jwt');
70};
71
72App.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
83App.go = function(path) {
84 page(path);
85};
86
87App.start = function() {
88 page();
89};
90
91App.onInternNavigation = function(href, e) {
92 e.preventDefault();
93 page(href);
94};
95
96App.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;
adf936f6 108 case 'user_not_confirmed':
109 page('/not_confirmed');
110 return false;
7a9e5112 111 default:
112 return true;
113 }
114};
115
116App.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
989fb5c7 127export default App;