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