diff options
author | Vijay A <avijayr@protonmail.com> | 2021-08-23 09:34:46 +0530 |
---|---|---|
committer | Vijay A <avijayr@protonmail.com> | 2021-08-23 09:34:46 +0530 |
commit | e5e50f4d7a8a24cb1061b563759108ffd0140825 (patch) | |
tree | 58df2e8fc2ee6ba3a0ef95cd7d8fc4032d95f4ce /src/internal-server/app/Controllers/Http/UserController.js | |
parent | 5.6.1-nightly.36 [skip ci] (diff) | |
download | ferdium-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.js | 23 |
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'); | |||
9 | const fetch = require('node-fetch'); | 9 | const fetch = require('node-fetch'); |
10 | const uuid = require('uuid/v4'); | 10 | const uuid = require('uuid/v4'); |
11 | const crypto = require('crypto'); | 11 | const crypto = require('crypto'); |
12 | const { DEFAULT_APP_SETTINGS } = require('../../../../environment'); | 12 | const { DEFAULT_APP_SETTINGS, API_VERSION } = require('../../../../environment'); |
13 | const { default: userAgent } = require('../../../../helpers/userAgent-helpers'); | ||
13 | 14 | ||
14 | const apiRequest = (url, route, method, auth) => new Promise((resolve, reject) => { | 15 | const 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 | ||
31 | const LOGIN_SUCCESS_TOKEN = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJGZXJkaSBJbnRlcm5hbCBTZXJ2ZXIiLCJpYXQiOjE1NzEwNDAyMTUsImV4cCI6MjUzMzk1NDE3ODQ0LCJhdWQiOiJnZXRmZXJkaS5jb20iLCJzdWIiOiJmZXJkaUBsb2NhbGhvc3QiLCJ1c2VySWQiOiIxIn0.9_TWFGp6HROv8Yg82Rt6i1-95jqWym40a-HmgrdMC6M'; | ||
32 | |||
33 | class UserController { | 33 | class 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(); |