From 43b733ceac1fa01ffd52e79e268096fd63fecb92 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Chif=20Gerg=C5=91?= <chif.gergo@kszk.bme.hu>
Date: Mon, 9 Mar 2020 22:57:10 +0100
Subject: [PATCH] Use the response object to share data between middlewares

---
 src/middlewares/news/addNews.ts     | 35 ++++++++++++++---------------
 src/middlewares/news/deleteNews.ts  | 29 ++++++++++++------------
 src/middlewares/news/getNews.ts     | 30 ++++++++++++-------------
 src/middlewares/news/getNewsList.ts | 27 +++++++++++-----------
 4 files changed, 58 insertions(+), 63 deletions(-)

diff --git a/src/middlewares/news/addNews.ts b/src/middlewares/news/addNews.ts
index 7e802e74..43c6437f 100644
--- a/src/middlewares/news/addNews.ts
+++ b/src/middlewares/news/addNews.ts
@@ -1,23 +1,22 @@
-import { Request, Response, NextFunction } from 'express';
-import News  from '../../models/NewsSchema';
-
+import { Request, Response, NextFunction } from "express";
+import News from "../../models/NewsSchema";
 
 const addNews = () => {
-    return (req: Request, res: Response, next: NextFunction) => {
-        const news = new News();
-        news.title = req.body.title;
-        news.text = req.body.text;
-        news.publishedAt = new Date().toDateString()
+  return (req: Request, res: Response, next: NextFunction) => {
+    const news = new News();
+    news.title = req.body.title;
+    news.text = req.body.text;
+    news.publishedAt = new Date().toDateString();
 
-        news.save((err) => {
-            if(err){
-                
-            } else {
-                res.status(201)
-                res.json(news)
-            };
-        });
-    };
+    news.save(err => {
+      if (err) {
+      } else {
+        res.status(201);
+        res.data.newsObject = news;
+      }
+      next();
+    });
+  };
 };
 
-export default addNews;
\ No newline at end of file
+export default addNews;
diff --git a/src/middlewares/news/deleteNews.ts b/src/middlewares/news/deleteNews.ts
index affd9ba7..7f633037 100644
--- a/src/middlewares/news/deleteNews.ts
+++ b/src/middlewares/news/deleteNews.ts
@@ -1,18 +1,17 @@
-import { Request, Response, NextFunction } from 'express';
-import News  from '../../models/NewsSchema';
-
+import { Request, Response, NextFunction } from "express";
+import News from "../../models/NewsSchema";
 
 const deleteNews = () => {
-    return (req: Request, res: Response, next: NextFunction) => {
-        News.findByIdAndDelete(req.params.id, (error, result) => {
-            if(!error){
-                res.status(204);
-                res.json({});
-            } else {
-                console.warn(error);
-            }
-        })
-    }
-}
+  return (req: Request, res: Response, next: NextFunction) => {
+    News.findByIdAndDelete(req.params.id, (error, result) => {
+      if (!error) {
+        res.status(204);
+        res.json({});
+      } else {
+        console.warn(error);
+      }
+    });
+  };
+};
 
-export default deleteNews;
\ No newline at end of file
+export default deleteNews;
diff --git a/src/middlewares/news/getNews.ts b/src/middlewares/news/getNews.ts
index b0bebcb2..e48a3d6c 100644
--- a/src/middlewares/news/getNews.ts
+++ b/src/middlewares/news/getNews.ts
@@ -1,20 +1,18 @@
-import { Request, Response, NextFunction } from 'express';
-import News  from '../../models/NewsSchema';
-
+import { Request, Response, NextFunction } from "express";
+import News from "../../models/NewsSchema";
 
 const getNews = () => {
-    return (req: Request, res: Response, next: NextFunction) => {
-
-        News.findById(req.params.id, (error, result) => {
-            if(!error){
-                res.status(200);
-                res.json(result);
-            } else {
-                console.warn(error);
-            }
-        })
-
-    };
+  return (req: Request, res: Response, next: NextFunction) => {
+    News.findById(req.params.id, (error, result) => {
+      if (!error) {
+        res.status(200);
+        res.data.newsObject = result;
+      } else {
+        console.warn(error);
+      }
+      next();
+    });
+  };
 };
 
-export default getNews;
\ No newline at end of file
+export default getNews;
diff --git a/src/middlewares/news/getNewsList.ts b/src/middlewares/news/getNewsList.ts
index 4c58564b..c55aa8a2 100644
--- a/src/middlewares/news/getNewsList.ts
+++ b/src/middlewares/news/getNewsList.ts
@@ -1,16 +1,15 @@
-import { Request, Response, NextFunction } from 'express';
-import News  from '../../models/NewsSchema';
-
+import { Request, Response, NextFunction } from "express";
+import News from "../../models/NewsSchema";
 
 const getNewsList = () => {
-    return (req: Request, res: Response, next: NextFunction) => {
-        News.find({}, (err, news) => {
-            if(!err){
-                res.json({ news: news});
-            }
-        });
-    }
-
-}
-
-export default getNewsList;
\ No newline at end of file
+  return (req: Request, res: Response, next: NextFunction) => {
+    News.find({}, (err, news) => {
+      if (!err) {
+        res.data.news = news;
+      }
+      next();
+    });
+  };
+};
+
+export default getNewsList;
-- 
GitLab