From b17eb9adc0b7468ad5def1faf19fc3d465250cc0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tam=C3=A1s=20Szab=C3=B3?= <tamas@szaboo.com>
Date: Sun, 15 Oct 2017 21:23:46 +0200
Subject: [PATCH] added comments and objectRepository

---
 app.js                              |  4 ++
 middleware/episode/deleteEpisode.js |  4 +-
 middleware/episode/getEpisode.js    |  4 +-
 middleware/episode/getEpisodes.js   |  4 +-
 middleware/episode/postEpisode.js   |  4 +-
 middleware/episode/updateEpisode.js |  4 +-
 middleware/generic/render.js        |  4 +-
 middleware/serie/deleteSerie.js     |  4 +-
 middleware/serie/getSerie.js        |  4 +-
 middleware/serie/getSeries.js       |  6 +--
 middleware/serie/postSerie.js       |  4 +-
 middleware/serie/updateSerie.js     |  4 +-
 package.json                        |  1 +
 routes/index.js                     | 81 ++++++++++++++++++-----------
 14 files changed, 80 insertions(+), 52 deletions(-)

diff --git a/app.js b/app.js
index 31524b9..5e6c58c 100644
--- a/app.js
+++ b/app.js
@@ -1,5 +1,9 @@
 const express = require('express');
 const app = express();
+const bodyParser = require('body-parser');
+
+app.use(bodyParser.urlencoded());
+app.use(bodyParser.json());
 
 app.use((req, res, next) => {
   res.error = [];
diff --git a/middleware/episode/deleteEpisode.js b/middleware/episode/deleteEpisode.js
index e9dabf3..cf38378 100644
--- a/middleware/episode/deleteEpisode.js
+++ b/middleware/episode/deleteEpisode.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Deletes an episode with the :episodeId id if exists
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/episode/getEpisode.js b/middleware/episode/getEpisode.js
index e9dabf3..6891a1d 100644
--- a/middleware/episode/getEpisode.js
+++ b/middleware/episode/getEpisode.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Returns an episode with the :episodeId id and put it in res.tpl.episode
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/episode/getEpisodes.js b/middleware/episode/getEpisodes.js
index e9dabf3..19d56b6 100644
--- a/middleware/episode/getEpisodes.js
+++ b/middleware/episode/getEpisodes.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Returns all the episodes for a given serie with :id and puts the list on res.tpl.episodes
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/episode/postEpisode.js b/middleware/episode/postEpisode.js
index e9dabf3..e7deb78 100644
--- a/middleware/episode/postEpisode.js
+++ b/middleware/episode/postEpisode.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Creates a new episode for the serie with :id id with the data provided
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/episode/updateEpisode.js b/middleware/episode/updateEpisode.js
index e9dabf3..727e930 100644
--- a/middleware/episode/updateEpisode.js
+++ b/middleware/episode/updateEpisode.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Updates the episode with :episodeId id with the data provided
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/generic/render.js b/middleware/generic/render.js
index 44bddd2..6939a47 100644
--- a/middleware/generic/render.js
+++ b/middleware/generic/render.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Using the template engine render the values into the template
  *
 */
-module.exports = (view) => {
+module.exports = (objectRepository, view) => {
   return (req, res) => {
     res.end(`Render: ${view}`);
   };
diff --git a/middleware/serie/deleteSerie.js b/middleware/serie/deleteSerie.js
index e9dabf3..a0e24dd 100644
--- a/middleware/serie/deleteSerie.js
+++ b/middleware/serie/deleteSerie.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Deletes a serie with given :id if exists
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/serie/getSerie.js b/middleware/serie/getSerie.js
index e9dabf3..b0b0292 100644
--- a/middleware/serie/getSerie.js
+++ b/middleware/serie/getSerie.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Returns the serie with :id id and put it in res.tpl.serie
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/serie/getSeries.js b/middleware/serie/getSeries.js
index c466652..f3e43a7 100644
--- a/middleware/serie/getSeries.js
+++ b/middleware/serie/getSeries.js
@@ -1,11 +1,11 @@
 /**
- *
+ * Returns all series in the database and puts the list on res.tpl.series
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
-    
+
     return next();
   };
 };
diff --git a/middleware/serie/postSerie.js b/middleware/serie/postSerie.js
index e9dabf3..a88938b 100644
--- a/middleware/serie/postSerie.js
+++ b/middleware/serie/postSerie.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Creates a new serie with the data provided
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/serie/updateSerie.js b/middleware/serie/updateSerie.js
index e9dabf3..ed9adb1 100644
--- a/middleware/serie/updateSerie.js
+++ b/middleware/serie/updateSerie.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Updates the serie with :id id with the data provided
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/package.json b/package.json
index 211cca1..bf33f15 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
   },
   "homepage": "https://szakitom.github.io/node_homework/",
   "dependencies": {
+    "body-parser": "^1.18.2",
     "express": "^4.16.0"
   }
 }
diff --git a/routes/index.js b/routes/index.js
index 70f0ef8..0f84efc 100644
--- a/routes/index.js
+++ b/routes/index.js
@@ -11,64 +11,87 @@ const updateEpisodeMW = require('../middleware/episode/updateEpisode');
 const deleteEpisodeMW = require('../middleware/episode/deleteEpisode');
 
 module.exports = (app) => {
+  const objectRepository = {};
+
   app.get('/',
-    getSeriesMW(),
-    renderMW('series')
+    getSeriesMW(objectRepository),
+    renderMW(objectRepository, 'series')
   );
 
+  // SERIES
+
   app.get('/series/:id',
-    getSerieMW(),
-    getEpisodesMW(),
-    renderMW('serie')
+    getSerieMW(objectRepository),
+    getEpisodesMW(objectRepository),
+    renderMW(objectRepository, 'serie')
   );
 
   app.get('/series/:id/edit',
-    getSerieMW(),
-    renderMW('serieEdit')
+    getSerieMW(objectRepository),
+    renderMW(objectRepository, 'serieEdit')
   );
 
-  app.post('series',
-    postSerieMW()
+  app.post('/series',
+    postSerieMW(objectRepository),
+    (req, res, next) => (
+      res.redirect('/series');
+    )
   );
 
   app.put('/series/:id',
-    getSerieMW(),
-    updateSerieMW()
+    getSerieMW(objectRepository),
+    updateSerieMW(objectRepository),
+    (req, res, next) => (
+      res.redirect(`/series/${req.params.id}`);
+    )
   );
 
   app.delete('/series/:id',
-    getSerieMW(),
-    getEpisodesMW(),
-    deleteSerieMW(),
-    deleteEpisodeMW()
+    getSerieMW(objectRepository),
+    getEpisodesMW(objectRepository),
+    deleteSerieMW(objectRepository),
+    (req, res, next) => (
+      res.redirect('/series');
+    )
   );
 
+  // EPISODES
+
   app.get('/series/:id/episode/:episodeId',
-    getSerieMW(),
-    getEpisodeMW(),
-    renderMW('episode')
+    getSerieMW(objectRepository),
+    getEpisodeMW(objectRepository),
+    renderMW(objectRepository, 'episode')
   );
 
   app.get('/series/:id/episode/:episodeId/edit',
-    getSerieMW(),
-    getEpisodeMW(),
-    renderMW('episodeEdit')
+    getSerieMW(objectRepository),
+    getEpisodeMW(objectRepository),
+    renderMW(objectRepository, 'episodeEdit')
   );
 
   app.post('/series/:id',
-    getSerieMW(),
-    postEpisodeMW()
+    getSerieMW(objectRepository),
+    postEpisodeMW(objectRepository),
+    (req, res, next) => (
+      res.redirect(`/series/${req.params.id}`);
+    )
   );
 
   app.put('/series/:id/episode/:episodeId',
-    getSerieMW(),
-    getEpisodeMW(),
-    updateEpisodeMW()
+    getSerieMW(objectRepository),
+    getEpisodeMW(objectRepository),
+    updateEpisodeMW(objectRepository),
+    (req, res, next) => (
+      res.redirect(`/series/${req.params.id}/episode/${req.params.episodeId}`);
+    )
   );
 
   app.delete('/series/:id/episode/:episodeId',
-    getSerieMW(),
-    getEpisodeMW(),
-    deleteEpisodeMW()
+    getSerieMW(objectRepository),
+    getEpisodeMW(objectRepository),
+    deleteEpisodeMW(objectRepository),
+    (req, res, next) => (
+      res.redirect(`/series/${req.params.id}`);
+    )
   );
 }
-- 
GitLab