diff --git a/index.js b/index.js index e301fc10f763d8babd0b5dfa9cbd6ca12ab51d46..4fd046d623d0e2f323eb99516eb42579cd1b9568 100644 --- a/index.js +++ b/index.js @@ -23,4 +23,5 @@ app.use('/auth', require('./server/auth')); app.use('/users', ensureLogin('/auth/signin'), require('./server/users')); app.listen(8080, () => { + console.log("Listening on 8080"); }); diff --git a/server/db.js b/server/db.js index 47620d872e5fd0d191452671d37dcbea5739a136..66c136e124bc6eca45e3757fe3c0e92486d11944 100644 --- a/server/db.js +++ b/server/db.js @@ -34,9 +34,8 @@ CREATE TABLE IF NOT EXISTS audit_events ( (async () => { const client = await pool.connect(); try { - console.log("Applying database seed.") + console.log("Applying database seed...") const res = await client.query(seed); - console.log(res); } finally { client.release(); } diff --git a/server/users.js b/server/users.js index ab71a9a6f7e96ce6817a119f8903261a0b4414de..7389009c938b1ad30dd94b71f251975e765c688d 100644 --- a/server/users.js +++ b/server/users.js @@ -13,37 +13,13 @@ const axios = require('axios').create({ } }); -router.get('/audit', async (req, res) => { - console.log('GET: /users/audit'); - - try { - const queryText = 'SELECT * FROM audit_events WHERE user_id = $1'; - console.log('> DB Query:'); - console.log(queryText); - const dbResponse = await db.query(queryText, [req.user.id]); - console.log('> DB Response:'); - console.log(dbResponse); - var rows = dbResponse.rows; - - res.send(rows); - } catch(err) { - console.log("> DB Error:"); - console.log(err); - return res.status(500).send({ 'message': "Database error occured" }); - } -}); - router.get('/', async (req, res) => { console.log('GET: /users'); try { const queryText = 'SELECT * FROM external_users WHERE owner_id = $1'; - console.log('> DB Query:'); - console.log(queryText); const dbResponse = await db.query(queryText, [req.user.id]); - console.log('> DB Response:'); - console.log(dbResponse); - var rows = dbResponse.rows; + const rows = dbResponse.rows; res.send(rows.map((row) => row.user_id)); } catch(err) { @@ -56,17 +32,14 @@ router.get('/', async (req, res) => { router.post('/', async (req, res) => { console.log("POST: /users"); console.log(req.body); + req.body = Object.keys(req.body) .filter( key => ['email','username','name','skype','linkedin','twitter','website_url','organization','bio','location','avatar'].includes(key) ) .reduce( (rs, key) => (rs[key] = req.body[key], rs), {} ); try { const queryText = 'SELECT * FROM external_users WHERE owner_id = $1'; - console.log('> DB Query:'); - console.log(queryText); const dbResponse = await db.query(queryText, [req.user.id]); - console.log('> DB Response:'); - console.log(dbResponse); if (dbResponse.rowCount >= config.external_limit) { return res.status(400).send({ 'message': 'External user limit reached' }); @@ -76,26 +49,19 @@ router.post('/', async (req, res) => { console.log(err); return res.status(500).send({ 'message': "Database error occured" }); } + // TODO: Apply further validation on input // XXX Make sure user is allowed to create try { var dbResponse = null; - console.log('> REST Query:'); - console.log('POST api/v4/users'); const response = await axios.post('api/v4/users', Object.assign({}, req.body, { external: true, reset_password: true })) const data = response.data - console.log('> Response:'); - console.log(data); try { const queryText = 'INSERT INTO external_users(owner_id, user_id, username) VALUES($1, $2, $3)'; - console.log('> DB Query:'); - console.log(queryText); - dbResponse = await db.query(queryText, [req.user.id, data.id, req.body.username]); - console.log('> DB Response:'); - console.log(dbResponse); + const dbResponse = await db.query(queryText, [req.user.id, data.id, req.body.username]); } catch(err) { console.log('> DB Error:'); console.log(err); @@ -105,11 +71,7 @@ router.post('/', async (req, res) => { try { const queryText = 'INSERT INTO audit_events(event, user_id, message) VALUES($1, $2, $3)'; - console.log('> DB Query:'); - console.log(queryText); const auditresp = await db.query(queryText, ['user.create', req.user.id, `Created account: ${data.name} <${data.email}>, username: ${data.username}`]); - console.log('> DB Response:'); - console.log(auditresp); } catch(err) { console.log('> DB Error:'); console.log(err); @@ -127,12 +89,8 @@ router.get('/:userId', async (req, res) => { console.log('GET: /users/' + req.params.userId); try { - console.log('> REST Query:'); - console.log('GET api/v4/users/' + req.params.userId); const response = await axios.get('api/v4/users/' + req.params.userId) const data = response.data - console.log('> Response:'); - console.log(data); res.send(data); } catch(err) { @@ -142,4 +100,21 @@ router.get('/:userId', async (req, res) => { } }); +router.get('/audit', async (req, res) => { + console.log('GET: /users/audit'); + + try { + const queryText = 'SELECT * FROM audit_events WHERE user_id = $1'; + const dbResponse = await db.query(queryText, [req.user.id]); + const rows = dbResponse.rows; + + res.send(rows); + } catch(err) { + console.log("> DB Error:"); + console.log(err); + return res.status(500).send({ 'message': "Database error occured" }); + } +}); + + module.exports = router;