Refactor models (merge Players in Games), add cursor to correspondance games. Finishe...
[vchess.git] / server / routes / users.js
index fc29730..7898ac8 100644 (file)
@@ -9,20 +9,16 @@ router.post('/register', access.unlogged, access.ajax, (req,res) => {
   const name = req.body.name;
   const email = req.body.email;
   const notify = !!req.body.notify;
-  if (UserModel.checkNameEmail({name: name, email: email}))
-  {
-    UserModel.create(name, email, notify, (err,ret) => {
-      if (err)
-      {
+  if (UserModel.checkNameEmail({name: name, email: email})) {
+    UserModel.create(name, email, notify, (err, ret) => {
+      if (!!err) {
         const msg = err.code == "SQLITE_CONSTRAINT"
           ? "User name or email already in use"
           : "User creation failed. Try again";
         res.json({errmsg: msg});
-      }
-      else
-      {
+      } else {
         const user = {
-          id: ret.uid,
+          id: ret.id,
           name: name,
           email: email,
         };
@@ -51,10 +47,8 @@ router.get("/whoami", access.ajax, (req,res) => {
     notify: false,
     newsRead: 0
   };
-  if (!req.cookies.token)
-    callback(anonymous);
-  else if (req.cookies.token.match(/^[a-z0-9]+$/))
-  {
+  if (!req.cookies.token) callback(anonymous);
+  else if (req.cookies.token.match(/^[a-z0-9]+$/)) {
     UserModel.getOne("sessionToken", req.cookies.token, (err, user) => {
       callback(user || anonymous);
     });
@@ -64,8 +58,8 @@ router.get("/whoami", access.ajax, (req,res) => {
 // NOTE: this method is safe because only IDs and names are returned
 router.get("/users", access.ajax, (req,res) => {
   const ids = req.query["ids"];
-  if (ids.match(/^([0-9]+,?)+$/)) //NOTE: slightly too permissive
-  {
+  // NOTE: slightly too permissive RegExp
+  if (ids.match(/^([0-9]+,?)+$/)) {
     UserModel.getByIds(ids, (err,users) => {
       res.json({users:users});
     });
@@ -75,8 +69,7 @@ router.get("/users", access.ajax, (req,res) => {
 router.put('/update', access.logged, access.ajax, (req,res) => {
   const name = req.body.name;
   const email = req.body.email;
-  if (UserModel.checkNameEmail({name: name, email: email}));
-  {
+  if (UserModel.checkNameEmail({name: name, email: email})) {
     const user = {
       id: req.userId,
       name: name,
@@ -97,8 +90,7 @@ router.put('/newsread', access.logged, access.ajax, (req,res) => {
 // Authentication-related methods:
 
 // to: object user (to who we send an email)
-function setAndSendLoginToken(subject, to, res)
-{
+function setAndSendLoginToken(subject, to, res) {
   // Set login token and send welcome(back) email with auth link
   const token = genToken(params.token.length);
   UserModel.setLoginToken(token, to.id);
@@ -115,8 +107,7 @@ function setAndSendLoginToken(subject, to, res)
 router.get('/sendtoken', access.unlogged, access.ajax, (req,res) => {
   const nameOrEmail = decodeURIComponent(req.query.nameOrEmail);
   const type = (nameOrEmail.indexOf('@') >= 0 ? "email" : "name");
-  if (UserModel.checkNameEmail({[type]: nameOrEmail}))
-  {
+  if (UserModel.checkNameEmail({[type]: nameOrEmail})) {
     UserModel.getOne(type, nameOrEmail, (err,user) => {
       access.checkRequest(res, err, user, "Unknown user", () => {
         setAndSendLoginToken("Token for " + params.siteURL, user, res);
@@ -134,8 +125,7 @@ router.get('/authenticate', access.unlogged, access.ajax, (req,res) => {
       // If token older than params.tokenExpire, do nothing
       if (Date.now() > user.loginTime + params.token.expire)
         res.json({errmsg: "Token expired"});
-      else
-      {
+      else {
         // Generate session token (if not exists) + destroy login token
         UserModel.trySetSessionToken(user.id, (token) => {
           res.cookie("token", token, {