From bd24d4000fd0c91cc0fdbd42f6903e0c408d52f1 Mon Sep 17 00:00:00 2001
From: Andrej Rasevic <andrej@rasevicengineering.com>
Date: Tue, 18 Jan 2022 18:12:05 -0500
Subject: [PATCH] updates

---
 .../nodeVersion/arrayMap.js                   | 12 +++++
 .../nodeVersion/arraySort.js                  | 38 ++++++++++++++
 .../nodeVersion/arrayFilter.js                | 50 +++++++++++++++++++
 .../serverCode/apisIntro/api-demo-v2/app.js   |  3 +-
 .../apisIntro/api-demo-v2/routes/api/books.js |  7 ++-
 .../apisIntro/api-demo-v2/routes/index.js     |  6 +++
 .../express-demo/routes/languages.js          | 10 ++++
 7 files changed, 122 insertions(+), 4 deletions(-)
 create mode 100644 codeExamples/week1/introductionToJavascript-1/nodeVersion/arrayMap.js
 create mode 100644 codeExamples/week1/introductionToJavascript-1/nodeVersion/arraySort.js
 create mode 100644 codeExamples/week1/introductionToJavascript-2/nodeVersion/arrayFilter.js
 create mode 100644 codeExamples/week2/serverCode/apisIntro/express-demo/routes/languages.js

diff --git a/codeExamples/week1/introductionToJavascript-1/nodeVersion/arrayMap.js b/codeExamples/week1/introductionToJavascript-1/nodeVersion/arrayMap.js
new file mode 100644
index 0000000..154ba56
--- /dev/null
+++ b/codeExamples/week1/introductionToJavascript-1/nodeVersion/arrayMap.js
@@ -0,0 +1,12 @@
+let numbers = [1, 4, 9];
+let doubles = numbers.map(function (num) {
+    return num * 2;
+});
+
+let triples = numbers.map( (n,v) => {
+    console.log(v)
+    return n * 3;
+})
+console.log(numbers)
+console.log(doubles)
+console.log(triples)
\ No newline at end of file
diff --git a/codeExamples/week1/introductionToJavascript-1/nodeVersion/arraySort.js b/codeExamples/week1/introductionToJavascript-1/nodeVersion/arraySort.js
new file mode 100644
index 0000000..297a0a6
--- /dev/null
+++ b/codeExamples/week1/introductionToJavascript-1/nodeVersion/arraySort.js
@@ -0,0 +1,38 @@
+let students = [{
+    name: "John",
+    id: 3
+},
+{
+    name: "Peter",
+    id: 2
+},
+{
+    name: "Mary",
+    id: 10
+}
+];
+console.log(students)
+students.sort(function (x, y) {
+return strCompare(x.name, y.name);
+});
+console.log(students)
+students.sort((s1, s2) => {
+    if (s1.id < s2.id) {
+        return -1
+    } else if (s1.id > s2.id) {
+        return 1
+    } else {
+        return 0
+    }
+})
+
+console.log(students)
+function strCompare(x, y) {
+    if (x < y) {
+    return -1;
+    } else if (x > y) {
+    return 1;
+    } else {
+    return 0;
+    }
+}
\ No newline at end of file
diff --git a/codeExamples/week1/introductionToJavascript-2/nodeVersion/arrayFilter.js b/codeExamples/week1/introductionToJavascript-2/nodeVersion/arrayFilter.js
new file mode 100644
index 0000000..671570a
--- /dev/null
+++ b/codeExamples/week1/introductionToJavascript-2/nodeVersion/arrayFilter.js
@@ -0,0 +1,50 @@
+let products = [{
+    name: "Licensed Metal Fish",
+    price: 694.00
+},
+{
+    name: "Tasty Rubber Chicken",
+    price: 345.00
+},
+{
+    name: "Handmade Fresh Chicken",
+    price: 984.00
+},
+{
+    name: "Ergonomic Frozen Computer",
+    price: 838.00
+},
+{
+    name: "Tasty Cotton Tuna",
+    price: 914.00
+},
+{
+    name: "Fantastic Steel Mouse",
+    price: 93.00
+},
+{
+    name: "Practical Rubber Keyboard",
+    price: 319.00
+},
+{
+    name: "Incredible Wooden Hat",
+    price: 930.00
+},
+{
+    name: "Fantastic Metal Soap",
+    price: 351.00
+},
+{
+    name: "Ergonomic Concrete Mouse",
+    price: 829.00
+}
+];
+
+let filtered = products.filter(p => {
+   return p.price > 900
+});
+let printProduct = p => {
+    console.log(`${p.name} ${p.price}`)
+};
+
+filtered.forEach(printProduct);
diff --git a/codeExamples/week2/serverCode/apisIntro/api-demo-v2/app.js b/codeExamples/week2/serverCode/apisIntro/api-demo-v2/app.js
index a36f1e6..d2e4756 100644
--- a/codeExamples/week2/serverCode/apisIntro/api-demo-v2/app.js
+++ b/codeExamples/week2/serverCode/apisIntro/api-demo-v2/app.js
@@ -19,11 +19,10 @@ app.use(cookieParser());
 app.use(express.static(path.join(__dirname, 'public')));
 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: true }));
-
 app.use('/', indexRouter);
 app.use('/users', usersRouter);
 app.use('/api/books', booksRouter);
 
-const db = mongoose.connect('mongodb+srv://dbadmin:dbpassword@cmsc388b.a9mha.mongodb.net/388-arasevic?retryWrites=true&w=majority', 
+const db = mongoose.connect('mongodb+srv://dbadmin:dbpassword@cmsc388b.a9mha.mongodb.net/arasevic-exercise4?retryWrites=true&w=majority', 
     { useNewUrlParser: true,  useUnifiedTopology: true});
 module.exports = app;
diff --git a/codeExamples/week2/serverCode/apisIntro/api-demo-v2/routes/api/books.js b/codeExamples/week2/serverCode/apisIntro/api-demo-v2/routes/api/books.js
index 76aa888..b6c75cd 100644
--- a/codeExamples/week2/serverCode/apisIntro/api-demo-v2/routes/api/books.js
+++ b/codeExamples/week2/serverCode/apisIntro/api-demo-v2/routes/api/books.js
@@ -13,7 +13,7 @@ bookRouter.use('/:bookId', (req, res, next)=>{
   console.log("I run only when I match the /:bookId route")
   Book.findById( req.params.bookId, (err,book)=>{
     if(err)
-        res.status(500).send(err)
+        res.status(404).send(err)
     else {
         req.book = book;
         next()
@@ -39,7 +39,7 @@ bookRouter.route('/:bookId')
    // Book.findById(req.params.bookId, (err, book) => {
      // res.json(book)
       // when using middleware
-      res.json(req.book)
+      res.status(200).json(req.book)
     //}) 
   })
   .put((req,res) => {
@@ -62,6 +62,8 @@ bookRouter.route('/:bookId')
     Book.findById(req.params.bookId, (err, book) => {
         // with middleware
         //  req.book.remove(err => {
+        if(err)
+          res.status(404).send(err)
         book.remove(err => {
             if(err){
                 res.status(500).send(err)
@@ -73,5 +75,6 @@ bookRouter.route('/:bookId')
     })
   })
   
+    
 
 module.exports = bookRouter;
\ No newline at end of file
diff --git a/codeExamples/week2/serverCode/apisIntro/api-demo-v2/routes/index.js b/codeExamples/week2/serverCode/apisIntro/api-demo-v2/routes/index.js
index ecca96a..5c11fde 100644
--- a/codeExamples/week2/serverCode/apisIntro/api-demo-v2/routes/index.js
+++ b/codeExamples/week2/serverCode/apisIntro/api-demo-v2/routes/index.js
@@ -6,4 +6,10 @@ router.get('/', function(req, res, next) {
   res.render('index', { title: 'Express' });
 });
 
+router.route('/heartbeat')
+.get((req, res) => {
+  res.status(200).json({message: 'server is up'})
+})
+
+
 module.exports = router;
diff --git a/codeExamples/week2/serverCode/apisIntro/express-demo/routes/languages.js b/codeExamples/week2/serverCode/apisIntro/express-demo/routes/languages.js
new file mode 100644
index 0000000..deb1295
--- /dev/null
+++ b/codeExamples/week2/serverCode/apisIntro/express-demo/routes/languages.js
@@ -0,0 +1,10 @@
+var express = require('express');
+var router = express.Router();
+
+/* GET users listing. */
+router.get('/languages', function(req, res, next) {
+  res.send('Go is soooo much better than Rust!');
+});
+
+
+module.exports = router;
-- 
GitLab