瀏覽代碼

receive equipments data

kungtinglin 6 年之前
父節點
當前提交
5843c8db23
共有 3 個文件被更改,包括 53 次插入2 次删除
  1. 31 1
      src/controllers/EquipmentController.ts
  2. 15 0
      src/requests/EquipmentDataRequest.ts
  3. 7 1
      src/routes.ts

+ 31 - 1
src/controllers/EquipmentController.ts

@@ -4,6 +4,7 @@ import { Equipment } from '../database/models/Equipment'
 import { sequelize } from '../database'
 import { networkError } from './Error'
 import { Site } from '../database/models/Site'
+import { EquipmentData } from '../database/models/EquipmentData'
 import { sendAlarm } from '../firebase'
 
 class EquipmentController {
@@ -54,7 +55,36 @@ class EquipmentController {
   }
 
   async receiveEquipmentData(req: Request, res: Response) {
-    sendAlarm('輔具 A', '緊急')
+    // sendAlarm('輔具 A', '緊急')
+    let statusId
+
+    switch (req.body.Status) {
+      case 'Rest':
+        statusId = 2
+
+      case 'Alarm':
+      case 'SOS':
+        statusId = 3
+        break
+
+      case 'SOS':
+        statusId = 3
+
+      default:
+        statusId = 1
+        break
+    }
+
+    EquipmentData.create({
+      ap_id: req.body.APID,
+      aid_id: req.body.AidID,
+      beacon_id: req.body.Baecon,
+      status: statusId,
+      battery: req.body.Battery,
+      latitude: req.body.GPS_Lat,
+      longitude: req.body.GPS_Lon
+    })
+
     res.json({ message: 'ok' })
   }
 }

+ 15 - 0
src/requests/EquipmentDataRequest.ts

@@ -0,0 +1,15 @@
+import { check } from 'express-validator'
+
+const EquipmentDataRequest = [
+  check('APID').exists(),
+  check('Time').exists(),
+  check('AidID').exists(),
+  check('GPS_Lat').exists(),
+  check('GPS_Lon').exists(),
+  check('Baecon').exists(),
+  check('Status').exists(),
+  check('Battery').exists(),
+  check('Alarm').exists()
+]
+
+export default EquipmentDataRequest

+ 7 - 1
src/routes.ts

@@ -1,5 +1,6 @@
 import LoginRequest from './requests/LoginRequest'
 import AssignEquipmentRequest from './requests/AssignEquipmentRequest'
+import EquipmentDataRequest from './requests/EquipmentDataRequest'
 import { ValidationChain } from 'express-validator'
 
 interface route {
@@ -29,5 +30,10 @@ export const routes: Array<route> = [
     validator: AssignEquipmentRequest
   },
   { url: '/users', method: 'get', action: 'AuthController@getUsers' },
-  { url: '/equipments', method: 'post', action: 'EquipmentController@receiveEquipmentData' }
+  {
+    url: '/equipments',
+    method: 'post',
+    action: 'EquipmentController@receiveEquipmentData',
+    validator: EquipmentDataRequest
+  }
 ]