Skip to content
Snippets Groups Projects
Commit 24dd8b23 authored by Alexander Olofsson's avatar Alexander Olofsson
Browse files

Be a bit smarter about user creation

parent fd034048
No related branches found
No related tags found
No related merge requests found
...@@ -13,7 +13,8 @@ pool.on('error', (err) => { ...@@ -13,7 +13,8 @@ pool.on('error', (err) => {
// TODO: Figure out the perfect db layout, or get the one from IDA // TODO: Figure out the perfect db layout, or get the one from IDA
const seed = ` const seed = `
CREATE TABLE IF NOT EXISTS external_users ( CREATE TABLE IF NOT EXISTS external_users (
id INTEGER PRIMARY KEY, id SERIAL,
user_id INTEGER,
owner_id INTEGER NOT NULL, owner_id INTEGER NOT NULL,
username VARCHAR(256) NOT NULL, username VARCHAR(256) NOT NULL,
date_added TIMESTAMP DEFAULT NOW() date_added TIMESTAMP DEFAULT NOW()
......
...@@ -16,7 +16,13 @@ const axios = require('axios').create({ ...@@ -16,7 +16,13 @@ const axios = require('axios').create({
router.get('/', async (req, res) => { router.get('/', async (req, res) => {
console.log('GET: /users'); console.log('GET: /users');
const { rows } = await db.query('SELECT * FROM external_users WHERE owner_id = $1', req.user.id); try {
const { rows } = await db.query('SELECT * FROM external_users WHERE owner_id = $1', req.user.id);
} catch(err) {
console.log("> DB Error:");
console.log(err);
return res.status(500).send({ 'message': "Database error occured" });
}
res.send(rows.map((row) => row.id)); res.send(rows.map((row) => row.id));
}); });
...@@ -32,17 +38,39 @@ router.post('/', async (req, res) => { ...@@ -32,17 +38,39 @@ router.post('/', async (req, res) => {
// XXX Make sure user is allowed to create // XXX Make sure user is allowed to create
try { try {
var dbResponse = null;
try {
const queryText = 'INSERT INTO external_users(owner_id, username, date_added) VALUES($1, $2, NOW())';
console.log("> DB Query:");
console.log(queryText);
dbResponse = await db.query(queryText, [req.user.id, req.body.username]);
console.log("> DB Response:");
console.log(dbResponse);
} catch(err) {
console.log("> DB Error:");
console.log(err);
return res.status(500).send({ 'message': "Database error occured" });
}
const response = await axios.post('api/v4/users', req.body) const response = await axios.post('api/v4/users', req.body)
const data = response.data const data = response.data
console.log("> Response:"); console.log("> Response:");
console.log(data); console.log(data);
try { try {
const queryText = 'INSERT INTO external_users(id, owner_id, username, date_added) VALUES($1, $2, $3, NOW())'; const queryText = 'UPDATE external_users SET user_id = $2 WHERE id = $1';
await db.query(queryText, [data.id, req.user.id, data.username]); console.log("> DB Query:");
console.log(queryText);
dbResponse = await db.query(queryText, [dbResponse.id, data.id]);
console.log("> DB Response:");
console.log(dbResponse);
} catch(err) { } catch(err) {
console.log("> DB Error:"); console.log("> DB Error:");
console.log(err); console.log(err);
return res.status(500).send({ 'message': "Database error occured" });
} }
res.send(data); res.send(data);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment