diff --git a/models/Drone.model.js b/models/Drone.model.js index 93e3ea9..91300f3 100644 --- a/models/Drone.model.js +++ b/models/Drone.model.js @@ -1 +1,12 @@ -// Iteration #1 \ No newline at end of file +// Iteration #1 +const {Schema, model} = require('mongoose'); + +const droneSchema = new Schema( { + name: String, + propellers: Number, + maxSpeed: Number, +}); + +const drone = model("drones", droneSchema); + +module.exports = drone; diff --git a/routes/drones.js b/routes/drones.js index 51da515..a8900de 100644 --- a/routes/drones.js +++ b/routes/drones.js @@ -1,36 +1,73 @@ -const express = require('express'); -const router = express.Router(); - -// require the Drone model here - -router.get('/drones', (req, res, next) => { - // Iteration #2: List the drones - // ... your code here -}); - -router.get('/drones/create', (req, res, next) => { - // Iteration #3: Add a new drone - // ... your code here -}); - -router.post('/drones/create', (req, res, next) => { - // Iteration #3: Add a new drone - // ... your code here -}); - -router.get('/drones/:id/edit', (req, res, next) => { - // Iteration #4: Update the drone - // ... your code here -}); - -router.post('/drones/:id/edit', (req, res, next) => { - // Iteration #4: Update the drone - // ... your code here -}); - -router.post('/drones/:id/delete', (req, res, next) => { - // Iteration #5: Delete the drone - // ... your code here -}); - -module.exports = router; +const express = require('express'); +const router = express.Router(); + +// require the Drone model here + +router.get('/drones', (req, res, next) => { + // Iteration #2: List the drones + // ... your code here + droneModel.find() + .then((drones) => { + res.render("drones/list.hbs", {drones}) + }).catch((err) => { + console.log('Failed!') + }); +}); + +router.get('/drones/create', (req, res, next) => { + // Iteration #3: Add a new drone + // ... your code here + res.render("drones/create-form.hbs") +}); + +router.post('/drones/create', (req, res, next) => { + // Iteration #3: Add a new drone + // ... your code here + const {name,propellers,maxSpeed} = req.body + droneModel.create({name,propellers,maxSpeed}) + .then((result) => { + res.redirect("/drones") + }).catch((err) => { + console.log('Failed!') + }); +}); + + +router.get('/drones/:id/edit', (req, res, next) => { + // Iteration #4: Update the drone + // ... your code here + const {id} = req.params; + droneModel.findById(id) + .then((drones) => { + res.render('drones/update-form.hbs',{drones}) + }).catch((err) => { + console.log('Failed!') + }); +}); + +router.post('/drones/:id/edit', (req, res, next) => { + // Iteration #4: Update the drone + // ... your code here + const {id} = req.params + const {name,propellers,maxSpeed} = req.body + droneModel.findByIdAndUpdate(id, {name,propellers,maxSpeed}) + .then((result) => { + res.redirect('/drones') + }).catch((err) => { + console.log('Failed!') + }); +}); + +router.post('/drones/:id/delete', (req, res, next) => { + // Iteration #5: Delete the drone + // ... your code here + const {id} = req.params + droneModel.findByIdAndDelete(id) + .then((result) => { + res.redirect('/drones') + }).catch((err) => { + console.log('Failed!') + }); +}); + +module.exports = router; diff --git a/routes/index.js b/routes/index.js index 9c2da49..5cf53d2 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,7 +1,7 @@ -const express = require("express"); -const router = express.Router(); - -/* GET home page */ -router.get("/", (req, res, next) => res.render("index")); - -module.exports = router; +const express = require("express"); +const router = express.Router(); + +/* GET home page */ +router.get("/", (req, res, next) => res.render("index")); + +module.exports = router; diff --git a/seeds/drones.seed.js b/seeds/drones.seed.js index 4b29ecb..b6e5397 100644 --- a/seeds/drones.seed.js +++ b/seeds/drones.seed.js @@ -1 +1,26 @@ -// Iteration #1 +// Iteration #1 +require ('../db') + + +const mongoose = require('mongoose'); +const droneModel = require ('../models/Drone.model') + +const dronesData = [ + + { name: "Creeper XL 500", propellers: 3, maxSpeed: 12 }, + + { name: "Racer 57", propellers: 4, maxSpeed: 20 }, + + { name: "Courier 3000i", propellers: 6, maxSpeed: 18 } + + ]; + +droneModel.create(dronesData) +.then((result) => { + console.log('Success!') +}).catch((err) => { + console.log('Failed!',err) +}) +.finally(() => { + mongoose.connection.close(); +}); diff --git a/views/drones/create-form.hbs b/views/drones/create-form.hbs index 1a8197f..605f5a0 100644 --- a/views/drones/create-form.hbs +++ b/views/drones/create-form.hbs @@ -1 +1,17 @@ -
Welcome to {{title}}
+Welcome to {{title}}
diff --git a/views/layout.hbs b/views/layout.hbs index 73199c1..3777e2f 100644 --- a/views/layout.hbs +++ b/views/layout.hbs @@ -1,19 +1,19 @@ - - - - - - - -