-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathauthenticate.js
More file actions
44 lines (29 loc) · 1.13 KB
/
authenticate.js
File metadata and controls
44 lines (29 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const VerificationProcess = require("./VerificationProcess.js"),
thresholdScore = 0.5,
failScore = -0.5;
maxGuesses = 4,
vps = {},
getTracks = require("./api.js").getTracks;
module.exports = function(app) {
app.post("/api/initial_song", (req, res) => {
const username = req.body.username || "";
let firstSong = (obj) => {
vps[username] = new VerificationProcess(obj.items);
res.json(vps[username].getSongs());
}
getTracks(username,firstSong);
});
app.post("/api/authenticate", (req, res) => {
const username = req.body.username,
guess = req.body.order,
newScore = vps[username].updateScore(guess);
console.log(`NEW SCORE: ${newScore}`);
let mode = "hold";
if (newScore >= thresholdScore && vps[username].attempt <= maxGuesses) mode = "pass";
if (vps[username].attempt >= maxGuesses && mode !== "pass") mode = "fail";
if (newScore <= failScore) mode = "fail";
let ret = { mode: mode };
if (mode === "hold") ret.songs = vps[username].getSongs();
res.json(ret);
});
}