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
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,14 @@ We don't need to worry about update or delete.
* Import and use the controller functions in the appropiate Router

# Part 4 - Database
* https://github.com/AustinCodingAcademy/express-mongodb
* Create a database somewhere for advanced-express-practice
* Create a new file database.js, implement the code for MongoClient and connect()
* Implement the mongodb client tool into your controllers for list, show, create
* Use insertMany() for create and find() for list and show
* How are your controllers going to get access to const db = client.db("advanced-express-practice");

# Part 5 - Mongoose
* In server/index.js, import and use mongoose. Connect to a database "advanced-express-practice"
* Create the mongoose models for Contact, Vehicle, Comment Product
* CommentModel - body
Expand Down
36 changes: 36 additions & 0 deletions controllers/comments.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
let comments = require("../comments")

//get - all comments
exports.list = function list(req, res) {
return res.json(comments);
}

//get - one comment
exports.show = function list(req, res) {
let comment = comments.find(p=>p._id === Number(req.params.id));
res.json(comment)
}

//post
exports.create = function list(req, res) {
let id = comments.length + 1;
let body = req.body.body;
let postId = req.body.postId;
comments.push({"_id":id, "body":body, "postId":postId})
res.json(comments);
}

//put
exports.update = function list(req, res) {
let comment = comments.find(p=>p._id === Number(req.params.id));
comment.body = body.body;
comment.postId = body.postId;
res.json(comment)
}

//delete
exports.remove = function list(req, res) {
let comment = comments.find(p=>p._id === Number(req.params.id));
comment.isActive = false;
res.send("deleted");
}
38 changes: 38 additions & 0 deletions controllers/contacts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
let contacts = require("../contacts");

//get - all contacts
exports.list = function list(req, res) {
return res.json(contacts);
}

//get - one contact
exports.show = function list(req, res) {
let contact = contacts.find(p=>p._id === Number(req.params.id));
res.json(contact)
}

//post
exports.create = function list(req, res) {
let id = contacts.length + 1;
let name = req.body.name;
let occupation = req.body.occupation;
let avatar = req.body.avatar;
contacts.push({"_id":id, "name":name, "occupation":occupation, "avatar":avatar})
res.json(contacts);
}

//put
exports.update = function list(req, res) {
let contact = contacts.find(p=>p._id === Number(req.params.id));
contact.name = body.name;
contact.occupation = body.occupation;
contact.avatar = body.avatar;
res.json(contact)
}

//delete
exports.remove = function list(req, res) {
let contact = contacts.find(p=>p._id === Number(req.params.id));
contact.isActive = false;
res.send("deleted");
}
36 changes: 36 additions & 0 deletions controllers/products.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
let products = require("../products");

//get - all products
exports.list = function list(req, res) {
return res.json(products);
}

//get - one product
exports.show = function list(req, res) {
let product = products.find(p=>p._id === Number(req.params.id));
res.json(product)
}

//post
exports.create = function list(req, res) {
let id = products.length + 1;
let name = req.body.name;
let description = req.body.description;
products.push({name, description, "_id":id, "Product Name":name, "Product desc":description})
res.json(products);
}

//put
exports.update = function list(req, res) {
let product = products.find(p=>p._id === Number(req.params.id));
product.name = body.name;
product.description = body.description;
res.json(product)
}

//delete
exports.remove = function list(req, res) {
let product = products.find(p=>p._id === Number(req.params.id));
product.isActive = false;
res.send("deleted");
}
40 changes: 40 additions & 0 deletions controllers/vehicles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
let vehicles = require("../vehicles");


//get - all vehicles
exports.list = function list(req, res) {
return res.json(vehicles);
}

//get - one vehicle
exports.show = function list(req, res) {
let vehicle = vehicles.find(p=>p._id === Number(req.params.id));
res.json(vehicle)
}

//post
exports.create = function list(req, res) {
let id = vehicles.length + 1;
let year = req.body.year;
let make = req.body.make;
let model = req.body.model;
vehicles.push({year, make, model, "_id":id, "Vehicle Year":year, "Vehicle Make":make, "Vehicle Model":model})
res.json(vehicles);
}

//put
exports.update = function list(req, res) {
let vehicle = vehicles.find(p=>p._id === Number(req.params.id));
vehicle.year = body.year;
vehicle.make = body.make;
vehicle.model = body.model;
res.json(vehicle)
}

//delete
exports.remove = function list(req, res) {
let vehicle = vehicles.find(p=>p._id === Number(req.params.id));
vehicle.isActive = false;
res.send("deleted");
}

15 changes: 9 additions & 6 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
let express = require("express");
let comments = require("./comments");
let products = require("./products");
let vehicles = require("./vehicles");
let contacts = require("./contacts");
let comments = require("./routes/comments");
let contacts = require("./routes/contacts");
let products = require("./routes/products");
let vehicles = require("./routes/vehicles");

const bodyParser = require("body-parser");
const app = express();

app.use(bodyParser.json());
app.use(express.static("public"));
app.use(comments);
app.use(contacts);
app.use(products);
app.use(vehicles);

const thePort = 3001;


app.listen(thePort, (err) => {
if (err) {
return console.log("Error", err);
Expand Down
11 changes: 11 additions & 0 deletions routes/comments.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const express = require("express");
const router = express.Router();
const {list,show,create} = require("../controllers/comments");


//comments
router.get('/comments', list);
router.get('/comments/:id', show);
router.post('/comments/', create);

module.exports = router;
10 changes: 10 additions & 0 deletions routes/contacts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const express = require("express");
const router = express.Router();
const {list,show,create} = require("../controllers/contacts");

//contacts
router.get('/contacts', list);
router.get('/contacts/:id', show);
router.post('/contacts/', create);

module.exports = router;
11 changes: 11 additions & 0 deletions routes/products.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const express = require("express");
const router = express.Router();
const {list,show,create} = require("../controllers/products");

//products
router.get('/products', list);
router.get('/products/:id', show);
router.post('/products/', create);


module.exports = router;
12 changes: 12 additions & 0 deletions routes/vehicles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const express = require("express");
const router = express.Router();
const {list,show,create} = require("../controllers/vehicles");


//vehicles
router.get('/vehicles', list);
router.get('/vehicles/:id', show);
router.post('/vehicles/', create);


module.exports = router;