const pgp = require('pg-promise')()
// const connection = { host: 'localhost', port: 5432, db: 'users' }
const connection = process.env.NODE_ENV === 'test'
? 'postgres:///users_test'
: 'postgres:///users'
const db = pgp(connection)
const addUser = (userName, jobName) => {
return db.one(`
SELECT j.job_id
FROM jobs AS s
WHERE j.job_name = $1`
, [jobName])
.then((jobs) => {
return db.one(`
INSERT INTO users
(name, job_id)
VALUES ($1, $2)
RETURNING user_id`,
[userName, jobs.job_id])
})
}
addUser('Micheal', 'teacher')
.then(console.log)
.catch(console.error)
const addUserToCompany = (userName, companyName) => {
let userId
let companyId
return db.one(`
SELECT user_id
FROM users
WHERE name=$1`, [userName])
.then((user) => {
userId = user.user_id
return db.one(`
SELECT company_id
FROM companies
WHERE name=$1`, [companyName])
})
.then((company) => {
ownerId = company.company_id
return db.one(`
INSERT INTO companyUsers
(user_id, company_id)
VALUES
($1, $2)
RETURNING *`,
[userId, companyId])
})
}
addUserToCompany('Micheal', 'Code Academy')
.then(console.log)
.catch(console.error)
const updateUserName = (userId, newName) => {
db.oneOrNone('UPDATE users SET name=$1 WHERE user_id=$2 RETURNING user_id', [newName, userId])
.then((returnedId) => {
if (returnedId) return { success: true, message: '' }
return { success: false, message: `Could not find userId ${userId}` }
})
.catch(err => Object({ success: false, message: err.message }))
}
updateUserName(17, 'Micheal-Moore')
module.exports = { addUser, addUserToCompany , updateUserName }