Commit | Line | Data |
---|---|---|
625022fd | 1 | function checkChallenge(c) |
ab4f4bf2 BA |
2 | { |
3 | const vid = parseInt(c.vid); | |
4 | if (isNaN(vid) || vid <= 0) | |
5 | return "Please select a variant"; | |
6 | ||
7 | const mainTime = parseInt(c.mainTime); | |
8 | const increment = parseInt(c.increment); | |
9 | if (isNaN(mainTime) || mainTime <= 0) | |
10 | return "Main time should be strictly positive"; | |
11 | if (isNaN(increment) || increment < 0) | |
12 | return "Increment must be positive"; | |
13 | ||
14 | // Basic alphanumeric check for players names | |
15 | let playerCount = 0; | |
16 | for (p of c.players) | |
17 | { | |
74ea2e8d | 18 | if (p.name.length > 0) |
ab4f4bf2 | 19 | { |
74ea2e8d | 20 | if (!p.name.match(/^[\w]+$/)) |
ab4f4bf2 BA |
21 | return "Wrong characters in players names"; |
22 | playerCount++; | |
23 | } | |
24 | } | |
25 | ||
74ea2e8d | 26 | if (playerCount > 0 && playerCount != c.nbPlayers-1) |
ab4f4bf2 BA |
27 | return "None, or all of the opponent names must be filled" |
28 | ||
625022fd BA |
29 | // Just characters check on server: |
30 | if (!c.fen.match(/^[a-zA-Z0-9, /-]*$/)) | |
31 | return "Bad FEN string"; | |
ab4f4bf2 BA |
32 | } |
33 | ||
625022fd | 34 | module.exports = checkChallenge; |