kungtinglin 5 роки тому
батько
коміт
2307733e21

+ 12 - 16
src/controllers/EquipmentController.ts

@@ -11,7 +11,8 @@ class EquipmentController {
   async getEquipments(req: Request, res: Response) {
     try {
       const [equipments] = await sequelize.query(
-        `SELECT equipment_data.*, equipments.id AS equipment_id, equipments.name AS equipment_name, equipments.site_id, equipments.current_user_id, users.name AS user_name FROM equipment_data
+        `SELECT equipment_data.*, equipments.id AS equipment_id, equipments.name AS equipment_name, equipments.site_id, equipments.current_user_id, users.name AS user_name
+         FROM equipment_data
          JOIN equipments ON aid_id = equipments.id
          LEFT JOIN users ON equipments.current_user_id = users.id
          WHERE equipment_data.id IN
@@ -34,7 +35,7 @@ class EquipmentController {
       const equipment = await Equipment.findByPk(equipmentId)
 
       if (!user) {
-        res.status(400).json({
+        res.status(404).json({
           message: 'User not found'
         })
         return
@@ -56,22 +57,16 @@ class EquipmentController {
 
   async receiveEquipmentData(req: Request, res: Response) {
     // sendAlarm('輔具 A', '緊急')
-    let statusId
-
-    switch (req.body.Status) {
-      case 'Rest':
-        statusId = 2
 
-      case 'Alarm':
-      case 'SOS':
-        statusId = 3
-        break
-
-      default:
-        statusId = 1
-        break
+    const Status: { [index: string]: Number } = {
+      Offline: 0,
+      Normal: 1,
+      Rest: 2,
+      SOS: 3
     }
 
+    var statusId = Status[req.body.Status] ? Status[req.body.Status] : 1
+
     await EquipmentData.create({
       ap_id: req.body.APID,
       aid_id: req.body.AidID,
@@ -79,7 +74,8 @@ class EquipmentController {
       status: statusId,
       battery: req.body.Battery,
       latitude: req.body.GPS_Lat,
-      longitude: req.body.GPS_Lon
+      longitude: req.body.GPS_Lon,
+      alarm: JSON.stringify(req.body.Alarm)
     })
 
     sendUpdateRequest()

+ 1 - 0
src/database/models/EquipmentData.ts

@@ -1,4 +1,5 @@
 import { Table, Model, CreatedAt, Column, UpdatedAt } from 'sequelize-typescript'
+import { DataTypes } from 'sequelize'
 
 @Table({ tableName: 'equipment_data', updatedAt: false })
 export class EquipmentData extends Model<EquipmentData> {

+ 2 - 1
src/requests/EquipmentDataRequest.ts

@@ -9,7 +9,8 @@ const EquipmentDataRequest = [
   check('Baecon').exists(),
   check('Status').exists(),
   check('Battery').exists(),
-  check('Alarm').exists()
+  check('Alarm').exists(),
+  check('Alarm').isArray()
 ]
 
 export default EquipmentDataRequest