Create Log Save System
This commit is contained in:
4
app.js
4
app.js
@@ -27,8 +27,8 @@ mongoose.connect(configs.mongodburl, {
|
||||
|
||||
// Save Route
|
||||
app.use("/api/save", require("./route/save.route"));
|
||||
// Update Route
|
||||
app.use("/api/update", require("./route/update.route"));
|
||||
// Device Log Route
|
||||
app.use("/api/device-log", require("./route/device.log.route"));
|
||||
// Wrong Endpoint
|
||||
app.use("/api/*", (req, res) => {
|
||||
res.status(400).json({error: true, message: "Invalid api end point!"});
|
||||
|
||||
47
controller/device.log.controller.js
Normal file
47
controller/device.log.controller.js
Normal file
@@ -0,0 +1,47 @@
|
||||
const configs = require("../configs");
|
||||
const DeviceModel = require("../models/device.model");
|
||||
|
||||
const set = async (
|
||||
token,
|
||||
device_id,
|
||||
remote_name,
|
||||
remote_type,
|
||||
operating_type
|
||||
) => {
|
||||
if (token === configs.verifyToken) {
|
||||
try {
|
||||
// Önce kaydı bulalım
|
||||
const filter = {
|
||||
_id: device_id
|
||||
};
|
||||
|
||||
const update = {
|
||||
$push: {
|
||||
device_log: {
|
||||
remote_name,
|
||||
remote_type,
|
||||
operating_type,
|
||||
log_time: Date.now()
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const result = await DeviceModel.updateOne(filter, update);
|
||||
|
||||
if (result.nModified === 0) {
|
||||
throw new Error("Güncellenmek istenen kayıt bulunamadı");
|
||||
}
|
||||
|
||||
return "Log Kaydedildi!";
|
||||
} catch (error) {
|
||||
// if (error.code === 11000) {
|
||||
// throw new Error("Zaten kaydedilmiş");
|
||||
// }
|
||||
throw new Error("Mongodb'ye kaydedilirken hata oluştu");
|
||||
}
|
||||
} else {
|
||||
throw new Error("Hatalı token");
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = { set };
|
||||
@@ -31,7 +31,8 @@ const save = async (
|
||||
serial_number,
|
||||
model,
|
||||
firmware_version,
|
||||
device_ip_address
|
||||
device_ip_address,
|
||||
update_time: Date.now()
|
||||
});
|
||||
const result = await newDevice.save();
|
||||
return "Cihaz kaydedildi.";
|
||||
@@ -48,7 +49,8 @@ const save = async (
|
||||
|
||||
const update = {
|
||||
$set: {
|
||||
device_ip_address
|
||||
device_ip_address,
|
||||
update_time: Date.now()
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -2,6 +2,21 @@ const mongoose = require("mongoose");
|
||||
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
const deviceLogSchema = new Schema({
|
||||
remote_name: {
|
||||
type: String
|
||||
},
|
||||
remote_type: {
|
||||
type: String
|
||||
},
|
||||
operating_type:{
|
||||
type: String // On/Off - Homekit Reset - Reset
|
||||
},
|
||||
log_time: {
|
||||
type: Date
|
||||
}
|
||||
});
|
||||
|
||||
const deviceSchema = new Schema({
|
||||
device_name: {
|
||||
type: String,
|
||||
@@ -26,7 +41,11 @@ const deviceSchema = new Schema({
|
||||
device_ip_address: {
|
||||
type: String,
|
||||
unique: true
|
||||
}
|
||||
},
|
||||
update_time: {
|
||||
type: Date
|
||||
},
|
||||
device_log: [deviceLogSchema]
|
||||
});
|
||||
|
||||
const Device = mongoose.model("Device", deviceSchema);
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
// const MainController = require("../controller/main.controller");
|
||||
|
||||
router.use(express.urlencoded({extended: false}));
|
||||
router.use(express.json());
|
||||
|
||||
// Save route
|
||||
router.get("/", (req, res) => {
|
||||
res.status(400).json({error: true, message: "Invalid api end point!"});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
32
route/device.log.route.js
Normal file
32
route/device.log.route.js
Normal file
@@ -0,0 +1,32 @@
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
const DeviceLogController = require("../controller/device.log.controller");
|
||||
|
||||
router.use(express.urlencoded({ extended: false }));
|
||||
router.use(express.json());
|
||||
|
||||
// Device Log Save route
|
||||
router.post("/", async (req, res) => {
|
||||
try {
|
||||
// Token Control Middleware
|
||||
const result = await DeviceLogController.set(
|
||||
req.body.token,
|
||||
req.body.device_id,
|
||||
req.body.remote_name,
|
||||
req.body.remote_type,
|
||||
req.body.operating_type,
|
||||
);
|
||||
|
||||
return res.status(200).json({
|
||||
error: false,
|
||||
result
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(400).json({
|
||||
error: true,
|
||||
result: error.message
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user