Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions controllers/employees.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
const mysql = require('mysql')
const pool = require('../mysql/connection')
const { handleSQLError } = require('../mysql/error')

const getEmployees = (req, res) => {
// SELECT ALL USERS

let sql="SELECT * FROM employees LIMIT 50";

pool.query(sql, (err, rows) => {
if (err) return handleSQLError(res, err)
return res.json(rows);
})
}

const getEmployeesById = (req, res) => {
// SELECT USERS WHERE ID = <REQ PARAMS ID>
let idValue=req.params.id;

let sql = `SELECT * FROM employees where emp_no=? LIMIT 1`;
// WHAT GOES IN THE BRACKETS
sql = mysql.format(sql, [idValue]);

pool.query(sql, (err, rows) => {
if (err) return handleSQLError(res, err)
return res.json(rows);
})
}


const getEmployeesByFirstName = (req, res) => {

let firstName=req.params.first_name;

let sql = `SELECT * FROM employees where first_name=? LIMIT 5`;

// WHAT GOES IN THE BRACKETS
sql = mysql.format(sql, [firstName])

pool.query(sql, (err, rows) => {
if (err) return handleSQLError(res, err)
return res.json(rows);
})
}

const getEmployeesSalary = (req, res) => {

let firstName=req.params.first_name;

let sql = `SELECT first_name,last_name, salary FROM employees JOIN salaries on employees.emp_no= salaries.emp_no where first_name=? LIMIT 1`;

// WHAT GOES IN THE BRACKETS
sql = mysql.format(sql, [firstName])

pool.query(sql, (err, rows) => {
if (err) return handleSQLError(res, err)
return res.json(rows);
})
}


const getEmployeesDept = (req, res) => {

let firstName=req.params.first_name;

let sql = `SELECT first_name,last_name, dept_no FROM employees JOIN dept_emp on employees.emp_no=dept_emp.emp_no where first_name=? LIMIT 1`;

// WHAT GOES IN THE BRACKETS
sql = mysql.format(sql, [firstName])

pool.query(sql, (err, rows) => {
if (err) return handleSQLError(res, err)
return res.json(rows);
})
}


const getEmployeesTitle = (req, res) => {

let firstName=req.params.first_name;

let sql = `SELECT first_name,last_name, title FROM employees JOIN titles on employees.emp_no=titles.emp_no where first_name=? LIMIT 1`;

// WHAT GOES IN THE BRACKETS
sql = mysql.format(sql, [firstName])

pool.query(sql, (err, rows) => {
if (err) return handleSQLError(res, err)
return res.json(rows);
})
}



module.exports = {
getEmployees,
getEmployeesById,
getEmployeesByFirstName,
getEmployeesSalary,
getEmployeesDept,
getEmployeesTitle
}
23 changes: 23 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const express = require('express');
const bodyParser = require("body-parser");
const usersRouter = require('./routes/employees');
const app = express();

// Port used, comment from computer 2
const port = process.env.PORT || 4001;
app.use(bodyParser.json())

app.use('/employees', usersRouter)
app.use('/employees/firstName', usersRouter)
app.use('/employeesSalary/firstName', usersRouter)
app.use('/employeesDept/firstName', usersRouter)
app.use('/employeesTitle/firstName', usersRouter)

app.get('/', (req, res) => {
res.send('Welcome to our API!')
})

app.listen(port, () => {
console.log(`Web server is listening on port ${port}!`);
});

26 changes: 26 additions & 0 deletions mysql/connection.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const mysql = require('mysql')

class Connection {
constructor() {
if (!this.pool) {
console.log('creating connection...')
this.pool = mysql.createPool({
connectionLimit: 1000,
host: '34.122.49.254',
user: 'root',
password:'12345',
database:'employees',
port: '3306',

})

return this.pool
}

return this.pool
}
}

const instance = new Connection()

module.exports = instance;
6 changes: 6 additions & 0 deletions mysql/error.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
const handleSQLError = (res, err) => {
console.log('SQL Error: ', err)
return res.status(500).send('An unexpected error occurred');
}

module.exports = { handleSQLError }
Loading