Unversion parameters.js
[vchess.git] / server / data / challengeCheck.js
CommitLineData
625022fd 1function 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 34module.exports = checkChallenge;