diff --git a/db_build.sql b/db_build.sql index f530899..0e44e96 100644 --- a/db_build.sql +++ b/db_build.sql @@ -7,7 +7,7 @@ CREATE TABLE users ( firstname TEXT NOT NULL, lastname TEXT NOT NULL, github TEXT NOT NULL, - email TEXT NOT NULL, + email TEXT UNIQUE, username TEXT UNIQUE, password TEXT NOT NULL ); diff --git a/src/queries.js b/src/queries.js index a432936..9e1cf47 100644 --- a/src/queries.js +++ b/src/queries.js @@ -37,7 +37,9 @@ queries.registerUser = (payload, cb) => { VALUES ($1, $2, $3, $4, $5, $6) RETURNING id, username`; const values = [payload.firstname, payload.lastname, payload.github, payload.email, payload.username, hash]; dbConn.query(sql, values, (err, data) => { - if (err) cb(err); + if (err) { + cb(err); + } else { const userinfo = data.rows[0]; cb(null, userinfo); diff --git a/src/routes.js b/src/routes.js index 3158066..0359fa0 100644 --- a/src/routes.js +++ b/src/routes.js @@ -63,9 +63,13 @@ const registerSubmit = { reply.view('register', { password: true }); } else { queries.registerUser(req.payload, (err, userinfo) => { - if (err) console.log(err); - req.cookieAuth.set({username: userinfo.username, userid: userinfo.id}); - reply.redirect('/'); + if (err) { + console.log('register error'); + reply.view('register', { alreadyReg: true }) + } else { + req.cookieAuth.set({username: userinfo.username, userid: userinfo.id}); + reply.redirect('/'); + } }); } } diff --git a/views/register.hbs b/views/register.hbs index 6b07788..b9d2b17 100644 --- a/views/register.hbs +++ b/views/register.hbs @@ -22,3 +22,7 @@ {{# if password}}

Passwords do not match

{{/if}} + +{{# if alreadyReg}} +

User already registered

+{{/if}}