瀏覽代碼

Add create equipment endpoint

Kuan Ting Lin 5 年之前
父節點
當前提交
5c125869e1

+ 21 - 8
src/controllers/EquipmentController.ts

@@ -5,7 +5,7 @@ import { sequelize } from "../database";
 import { networkError } from "./Error";
 import { Site } from "../database/models/Site";
 import { EquipmentData } from "../database/models/EquipmentData";
-import { sendUpdateRequest, sendAlarm } from "../firebase";
+import { sendAlarm } from "../firebase";
 import { Status } from "../enums/EquipmentStatus";
 
 class EquipmentController {
@@ -62,11 +62,8 @@ class EquipmentController {
       : 1;
     const equipment = await Equipment.findByPk(Number(req.body.AidID));
 
-    console.log("statusId", statusId);
-
     if (!equipment) {
-      res.status(400).json({ message: "Equipment not found." });
-      return;
+      return res.status(400).json({ message: "Equipment not found." });
     }
 
     await EquipmentData.create({
@@ -87,14 +84,30 @@ class EquipmentController {
       equipment.current_alarm_type != req.body.Alarm[0]
     ) {
       sendAlarm(equipment.name, String(req.body.Alarm[0]));
-    } else {
-      // sendUpdateRequest();
     }
 
     equipment.update({
       current_alarm_type: req.body.Alarm.length > 0 ? req.body.Alarm[0] : null,
     });
-    res.json({ message: "ok" });
+
+    return res.json({ message: "ok" });
+  }
+
+  async createEquipment(req: Request, res: Response) {
+    const site = await Site.findByPk(req.body.site_id);
+
+    if (!site) {
+      return res.status(400).json({
+        message: "Site not found.",
+      });
+    }
+
+    await Equipment.create({
+      name: req.body.name,
+      site_id: req.body.site_id,
+    });
+
+    return res.json({ message: "ok" });
   }
 }
 

+ 6 - 3
src/requests/AssignEquipmentRequest.ts

@@ -1,5 +1,8 @@
-import { check } from 'express-validator'
+import { check } from "express-validator";
 
-const AssignEquipmentRequest = [check('user_id').exists(), check('equipment_id').exists()]
+const AssignEquipmentRequest = [
+  check("user_id").exists(),
+  check("equipment_id").exists(),
+];
 
-export default AssignEquipmentRequest
+export default AssignEquipmentRequest;

+ 9 - 0
src/requests/CreateEquipmentRequest.ts

@@ -0,0 +1,9 @@
+import { check } from "express-validator";
+
+const CreateEquipmentRequest = [
+  check("name").exists(),
+  check("site_id").exists(),
+  check("site_id").isInt(),
+];
+
+export default CreateEquipmentRequest;

+ 7 - 0
src/routes.ts

@@ -2,6 +2,7 @@ import LoginRequest from "./requests/LoginRequest";
 import AssignEquipmentRequest from "./requests/AssignEquipmentRequest";
 import EquipmentDataRequest from "./requests/EquipmentDataRequest";
 import { ValidationChain } from "express-validator";
+import CreateEquipmentRequest from "./requests/CreateEquipmentRequest";
 
 interface route {
   url: string;
@@ -37,4 +38,10 @@ export const routes: Array<route> = [
     validator: EquipmentDataRequest,
     middlewares: ["BlockDuplicatedEquipmentData"],
   },
+  {
+    url: "/createEquipment",
+    method: "post",
+    action: "EquipmentController@createEquipment",
+    validator: CreateEquipmentRequest,
+  },
 ];