From 6f36861653e66dddebdad27691be41dbd86bdf61 Mon Sep 17 00:00:00 2001
From: elit04 <elit04@fu-berlin.de>
Date: Thu, 13 Jan 2022 12:29:40 -0500
Subject: [PATCH] createLogEntry in separate file

---
 server/src/controllers/auth.controllers.ts    | 43 -----------------
 .../createLogEntryControllers.controllers.ts  | 46 +++++++++++++++++++
 server/src/routes/auth.routes.ts              | 15 ------
 .../src/routes/createLogEntryRoutes.routes.ts | 22 +++++++++
 server/src/server.ts                          |  3 ++
 5 files changed, 71 insertions(+), 58 deletions(-)
 create mode 100644 server/src/controllers/createLogEntryControllers.controllers.ts
 create mode 100644 server/src/routes/createLogEntryRoutes.routes.ts

diff --git a/server/src/controllers/auth.controllers.ts b/server/src/controllers/auth.controllers.ts
index d96f5a7..073964f 100644
--- a/server/src/controllers/auth.controllers.ts
+++ b/server/src/controllers/auth.controllers.ts
@@ -2,8 +2,6 @@ import bcrypt from "bcrypt";
 import { Request, Response } from "express";
 import jwt from "jsonwebtoken";
 import Employee from "../db/models/Employee";
-import CheckIn from "../db/models/CheckIn";
-import Boat from "../db/models/Boat";
 import envVars from "../config";
 
 //log in
@@ -42,49 +40,8 @@ const authLoginController = async (req: Request, res: Response) => {
   }
 };
 
-//create log entry
-const createLogEntry = async (req: Request, res: Response) => {
-
-  try{
-    
-    const logEntry = req.body;
-    
-    const boatid = Boat.findByPk(logEntry.boatID);
-
-    //get status of boat
-    const bootAvailability = (await boatid).status;
-
-
-    //if boat is not available => it's locked
-    if(!(bootAvailability === true)) {
-      return res.status(409).json({ success: false, error: "BoatLocked" });
-    };
-
-
-    const newLogEntry = await CheckIn.create(logEntry);
-
-    return res.status(201).json({
-      success: true,
-      account: {
-        startTime: newLogEntry.startTime,
-        estimatedEndTime: newLogEntry.estimatedEndTime,
-        email: newLogEntry.email,
-        firstName: newLogEntry.firstName,
-        lastName: newLogEntry.lastName,
-        additionalClients: newLogEntry.additionalClients,
-        boatID: newLogEntry.boatID,
-        },
-      });
-  } catch (error) {
-    console.error(error.message);
-    return res.status(500).json({ success: false, error: "serverError" });
-  }
-};
-
-
 const authControllers = {
   authLoginController,
-  createLogEntry,
 };
 
 
diff --git a/server/src/controllers/createLogEntryControllers.controllers.ts b/server/src/controllers/createLogEntryControllers.controllers.ts
new file mode 100644
index 0000000..dc45b89
--- /dev/null
+++ b/server/src/controllers/createLogEntryControllers.controllers.ts
@@ -0,0 +1,46 @@
+import { Request, Response } from "express";
+import CheckIn from "../db/models/CheckIn";
+import Boat from "../db/models/Boat";
+
+//create log entry
+const createLogEntry = async (req: Request, res: Response) => {
+
+    try{
+      
+        const logEntry = req.body;
+        const boatid = Boat.findByPk(logEntry.boatID);
+        
+        //get status of boat
+        const bootAvailability = (await boatid).status;
+        
+        //if boat is not available => it's locked
+        if(!(bootAvailability === true)) {
+            return res.status(409).json({ success: false, error: "BoatLocked" });
+        };
+  
+        const newLogEntry = await CheckIn.create(logEntry);
+  
+        return res.status(201).json({
+            success: true,
+                account: {
+                    startTime: newLogEntry.startTime,
+                    estimatedEndTime: newLogEntry.estimatedEndTime,
+                    email: newLogEntry.email,
+                    firstName: newLogEntry.firstName,
+                    lastName: newLogEntry.lastName,
+                    additionalClients: newLogEntry.additionalClients,
+                    boatID: newLogEntry.boatID,
+                },
+        });
+    } catch (error) {
+        console.error(error.message);
+        return res.status(500).json({ success: false, error: "serverError" });
+    }
+};
+   
+const createLogEntryControllers = {
+    createLogEntry,
+};
+  
+  
+export default createLogEntryControllers;
\ No newline at end of file
diff --git a/server/src/routes/auth.routes.ts b/server/src/routes/auth.routes.ts
index 51b9094..f6601bc 100644
--- a/server/src/routes/auth.routes.ts
+++ b/server/src/routes/auth.routes.ts
@@ -14,19 +14,4 @@ authRouter.post(
   authControllers.authLoginController
 );
 
-//create new log entry route
-authRouter.post(
-  "/api/logentry/",
-  //isISO8601() checks if string is a valid date+time
-  body("startTime").isISO8601(),
-  body("estimatedEndTime").isISO8601(),
-  body("email").isEmail().normalizeEmail(),
-  body("firstName").not().isEmpty(),
-  body("lastName").not().isEmpty(),
-  body("boatID").isUUID(),
-  handleValidationResult,
-  authControllers.createLogEntry
-);
-
-
 export default authRouter;
diff --git a/server/src/routes/createLogEntryRoutes.routes.ts b/server/src/routes/createLogEntryRoutes.routes.ts
new file mode 100644
index 0000000..30dae54
--- /dev/null
+++ b/server/src/routes/createLogEntryRoutes.routes.ts
@@ -0,0 +1,22 @@
+import { Router } from "express";
+import { body } from "express-validator";
+import handleValidationResult from "../middleware/handleValidationResult";
+import createLogEntryControllers from "../controllers/createLogEntryControllers.controllers";
+
+const entryRouter = Router();
+
+//create new log entry route
+entryRouter.post(
+    "/api/logentry/",
+    //isISO8601() checks if string is a valid date+time
+    body("startTime").isISO8601(),
+    body("estimatedEndTime").isISO8601(),
+    body("email").isEmail().normalizeEmail(),
+    body("firstName").not().isEmpty(),
+    body("lastName").not().isEmpty(),
+    body("boatID").isUUID(),
+    handleValidationResult,
+    createLogEntryControllers.createLogEntry
+  );
+
+  export default entryRouter;
\ No newline at end of file
diff --git a/server/src/server.ts b/server/src/server.ts
index 5618c28..250925e 100644
--- a/server/src/server.ts
+++ b/server/src/server.ts
@@ -12,6 +12,8 @@ import authRouter from "./routes/auth.routes";
 import boatsRouter from "./routes/boatRoutes.routes";
 import userRouter from "./routes/user.routes";
 import boatTypeRouter from "./routes/boatTypeRoutes.routes";
+import entryRouter from "./routes/createLogEntryRoutes.routes";
+
 
 let init = async () => {
   //DB
@@ -30,6 +32,7 @@ let init = async () => {
   app.use("/", boatsRouter);
   app.use("/", userRouter);
   app.use("/", boatTypeRouter);
+  app.use("/", entryRouter);
   //DB-information section
   await showAllDBs(sequelize);
   await showTables(sequelize);
-- 
GitLab