aboutsummaryrefslogtreecommitdiffstats
path: root/src/internal-server/app/Controllers/Http/UserController.js
diff options
context:
space:
mode:
authorLibravatar Vijay A <avijayr@protonmail.com>2021-08-23 09:34:46 +0530
committerLibravatar Vijay A <avijayr@protonmail.com>2021-08-23 09:34:46 +0530
commite5e50f4d7a8a24cb1061b563759108ffd0140825 (patch)
tree58df2e8fc2ee6ba3a0ef95cd7d8fc4032d95f4ce /src/internal-server/app/Controllers/Http/UserController.js
parent5.6.1-nightly.36 [skip ci] (diff)
downloadferdium-app-e5e50f4d7a8a24cb1061b563759108ffd0140825.tar.gz
ferdium-app-e5e50f4d7a8a24cb1061b563759108ffd0140825.tar.zst
ferdium-app-e5e50f4d7a8a24cb1061b563759108ffd0140825.zip
refactor: Reuse constants and utility functions to remove hardcoding/duplication
Diffstat (limited to 'src/internal-server/app/Controllers/Http/UserController.js')
-rw-r--r--src/internal-server/app/Controllers/Http/UserController.js23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/internal-server/app/Controllers/Http/UserController.js b/src/internal-server/app/Controllers/Http/UserController.js
index d8ed9abc5..57aea6fc1 100644
--- a/src/internal-server/app/Controllers/Http/UserController.js
+++ b/src/internal-server/app/Controllers/Http/UserController.js
@@ -9,18 +9,16 @@ const btoa = require('btoa');
9const fetch = require('node-fetch'); 9const fetch = require('node-fetch');
10const uuid = require('uuid/v4'); 10const uuid = require('uuid/v4');
11const crypto = require('crypto'); 11const crypto = require('crypto');
12const { DEFAULT_APP_SETTINGS } = require('../../../../environment'); 12const { DEFAULT_APP_SETTINGS, API_VERSION } = require('../../../../environment');
13const { default: userAgent } = require('../../../../helpers/userAgent-helpers');
13 14
14const apiRequest = (url, route, method, auth) => new Promise((resolve, reject) => { 15const apiRequest = (url, route, method, auth) => new Promise((resolve, reject) => {
15 const base = `${url}/v1/`;
16 const user = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Ferdi/5.3.0-beta.1 Chrome/69.0.3497.128 Electron/4.2.4 Safari/537.36';
17
18 try { 16 try {
19 fetch(base + route, { 17 fetch(`${url}/${API_VERSION}/${route}`, {
20 method, 18 method,
21 headers: { 19 headers: {
22 Authorization: `Bearer ${auth}`, 20 Authorization: `Bearer ${auth}`,
23 'User-Agent': user, 21 'User-Agent': userAgent(),
24 }, 22 },
25 }) 23 })
26 .then(data => data.json()) 24 .then(data => data.json())
@@ -30,6 +28,8 @@ const apiRequest = (url, route, method, auth) => new Promise((resolve, reject) =
30 } 28 }
31}); 29});
32 30
31const LOGIN_SUCCESS_TOKEN = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJGZXJkaSBJbnRlcm5hbCBTZXJ2ZXIiLCJpYXQiOjE1NzEwNDAyMTUsImV4cCI6MjUzMzk1NDE3ODQ0LCJhdWQiOiJnZXRmZXJkaS5jb20iLCJzdWIiOiJmZXJkaUBsb2NhbGhvc3QiLCJ1c2VySWQiOiIxIn0.9_TWFGp6HROv8Yg82Rt6i1-95jqWym40a-HmgrdMC6M';
32
33class UserController { 33class UserController {
34 // Register a new user 34 // Register a new user
35 async signup({ 35 async signup({
@@ -52,7 +52,7 @@ class UserController {
52 52
53 return response.send({ 53 return response.send({
54 message: 'Successfully created account', 54 message: 'Successfully created account',
55 token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJGZXJkaSBJbnRlcm5hbCBTZXJ2ZXIiLCJpYXQiOjE1NzEwNDAyMTUsImV4cCI6MjUzMzk1NDE3ODQ0LCJhdWQiOiJnZXRmZXJkaS5jb20iLCJzdWIiOiJmZXJkaUBsb2NhbGhvc3QiLCJ1c2VySWQiOiIxIn0.9_TWFGp6HROv8Yg82Rt6i1-95jqWym40a-HmgrdMC6M', 55 token: LOGIN_SUCCESS_TOKEN,
56 }); 56 });
57 } 57 }
58 58
@@ -70,7 +70,7 @@ class UserController {
70 70
71 return response.send({ 71 return response.send({
72 message: 'Successfully logged in', 72 message: 'Successfully logged in',
73 token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJGZXJkaSBJbnRlcm5hbCBTZXJ2ZXIiLCJpYXQiOjE1NzEwNDAyMTUsImV4cCI6MjUzMzk1NDE3ODQ0LCJhdWQiOiJnZXRmZXJkaS5jb20iLCJzdWIiOiJmZXJkaUBsb2NhbGhvc3QiLCJ1c2VySWQiOiIxIn0.9_TWFGp6HROv8Yg82Rt6i1-95jqWym40a-HmgrdMC6M', 73 token: LOGIN_SUCCESS_TOKEN,
74 }); 74 });
75 } 75 }
76 76
@@ -168,19 +168,16 @@ class UserController {
168 168
169 const hashedPassword = crypto.createHash('sha256').update(password).digest('base64'); 169 const hashedPassword = crypto.createHash('sha256').update(password).digest('base64');
170 170
171 const base = `${server}/v1/`;
172 const userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Ferdi/5.3.0-beta.1 Chrome/69.0.3497.128 Electron/4.2.4 Safari/537.36';
173
174 // Try to get an authentication token 171 // Try to get an authentication token
175 let token; 172 let token;
176 try { 173 try {
177 const basicToken = btoa(`${email}:${hashedPassword}`); 174 const basicToken = btoa(`${email}:${hashedPassword}`);
178 175
179 const rawResponse = await fetch(`${base}auth/login`, { 176 const rawResponse = await fetch(`${server}/${API_VERSION}/auth/login`, {
180 method: 'POST', 177 method: 'POST',
181 headers: { 178 headers: {
182 Authorization: `Basic ${basicToken}`, 179 Authorization: `Basic ${basicToken}`,
183 'User-Agent': userAgent, 180 'User-Agent': userAgent(),
184 }, 181 },
185 }); 182 });
186 const content = await rawResponse.json(); 183 const content = await rawResponse.json();