Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ce23e82
initial setup
forrestmorrison Feb 21, 2022
0add106
basic Express
forrestmorrison Feb 21, 2022
440efdd
added connection file
taplinseth Feb 21, 2022
fbd6588
Merge pull request #1 from taplinseth/pulling
forrestmorrison Feb 21, 2022
6d4c82b
added controllers folder
taplinseth Feb 21, 2022
9cefb80
Merge pull request #2 from taplinseth/pulling
forrestmorrison Feb 21, 2022
c57dcb3
added routes folder & created employees router
forrestmorrison Feb 21, 2022
7b4eb50
created getEmployeesByFirstName function
taplinseth Feb 21, 2022
b818b3d
Merge pull request #3 from taplinseth/pulling
forrestmorrison Feb 21, 2022
ab1db35
Merge pull request #4 from forrestmorrison/routers-folder
forrestmorrison Feb 21, 2022
cd65c7a
imported controller employees.js file to routes
taplinseth Feb 21, 2022
d45885e
added get route for getEmployeesByFirstName function
taplinseth Feb 21, 2022
968ed10
route for all employees
forrestmorrison Feb 21, 2022
1b8eb09
employees router
forrestmorrison Feb 21, 2022
ff07f3d
update getEmployeesByFirstName function
taplinseth Feb 21, 2022
2b69e8c
Merge pull request #5 from taplinseth/pulling
forrestmorrison Feb 21, 2022
641573d
Merge branch 'master' into employees-base-route
forrestmorrison Feb 21, 2022
a38e1f2
Merge pull request #6 from forrestmorrison/employees-base-route
forrestmorrison Feb 21, 2022
c286fb7
fixed typo
taplinseth Feb 21, 2022
9bf0966
added ability to search salary data by Id
taplinseth Feb 21, 2022
ec5110e
changes
taplinseth Feb 21, 2022
39ae0e5
Merge pull request #7 from taplinseth/pulling
forrestmorrison Feb 21, 2022
a01592b
getEmployees controller
forrestmorrison Feb 21, 2022
99ff92e
Merge branch 'master' into getemployees-controller
forrestmorrison Feb 21, 2022
913a19a
Merge pull request #8 from forrestmorrison/getemployees-controller
forrestmorrison Feb 21, 2022
e410954
limit 50
forrestmorrison Feb 21, 2022
511dbca
Merge pull request #9 from forrestmorrison/sql-getemployees
forrestmorrison Feb 21, 2022
1f4fa3e
get employees by id
forrestmorrison Feb 21, 2022
476d2bb
corrected routes
forrestmorrison Feb 21, 2022
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
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
node_modules
.env
node_modules
49 changes: 49 additions & 0 deletions controllers/employees.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
const mysql = require('mysql');
const pool = require('../mysql/connection');
const { handleSQLError } = require('../mysql/error');

const getEmployees = (req, res) => {
let sql = "SELECT * FROM employees LIMIT 50";

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

const getEmployeesById = (req, res) => {
let sql = "SELECT * FROM employees WHERE emp_no = ?";
sql = mysql.format(sql, [req.params.emp_no]);

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

const getEmployeesByFirstName = (req, res) => {
let sql = "SELECT * FROM employees WHERE first_name = ?";
sql = mysql.format(sql, [req.params.first_name]);

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

// const getSalariesById = (req, res) => {
// let sql = "SELECT * FROM salaries WHERE emp_no = ?";
// sql = mysql.format(sql, [req.body.emp_no]);

// pool.query(sql, (err, rows) => {
// if (err) return handleSQLError(res, err);
// return res.json("getting employee salary data..." + rows);
// })
// }

module.exports = {
getEmployees,
getEmployeesById,
getEmployeesByFirstName,
// getSalariesById
}
18 changes: 18 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const express = require('express');
const bodyParser = require("body-parser");
const employees = require('./routes/employees');
require('dotenv').config()
const port = process.env.PORT || 4001;
const app = express();

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

app.use(bodyParser.json());
app.use('/', employees);


app.listen(port, () => {
console.log(`web server is listening on port ${port}`);
})
30 changes: 30 additions & 0 deletions mysql/connection.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
const mysql = require('mysql')
require('dotenv').config()

const employeeDatabase = {
host : process.env.HOST,
user : process.env.USER,
password : process.env.PASSWORD,
database : process.env.DATABASE,
multipleStatements: true //allows execution of multiple SQL statements
}

class Connection {
constructor() {
if (!this.pool) {
console.log('creating connection...')
this.pool = mysql.createPool({
connectionLimit: 100,
...employeeDatabase
})

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('something went wrong');
}

module.exports = { handleSQLError }
Loading