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
|
// Save Route
|
||||||
app.use("/api/save", require("./route/save.route"));
|
app.use("/api/save", require("./route/save.route"));
|
||||||
// Update Route
|
// Device Log Route
|
||||||
app.use("/api/update", require("./route/update.route"));
|
app.use("/api/device-log", require("./route/device.log.route"));
|
||||||
// Wrong Endpoint
|
// Wrong Endpoint
|
||||||
app.use("/api/*", (req, res) => {
|
app.use("/api/*", (req, res) => {
|
||||||
res.status(400).json({error: true, message: "Invalid api end point!"});
|
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,
|
serial_number,
|
||||||
model,
|
model,
|
||||||
firmware_version,
|
firmware_version,
|
||||||
device_ip_address
|
device_ip_address,
|
||||||
|
update_time: Date.now()
|
||||||
});
|
});
|
||||||
const result = await newDevice.save();
|
const result = await newDevice.save();
|
||||||
return "Cihaz kaydedildi.";
|
return "Cihaz kaydedildi.";
|
||||||
@@ -48,7 +49,8 @@ const save = async (
|
|||||||
|
|
||||||
const update = {
|
const update = {
|
||||||
$set: {
|
$set: {
|
||||||
device_ip_address
|
device_ip_address,
|
||||||
|
update_time: Date.now()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,21 @@ const mongoose = require("mongoose");
|
|||||||
|
|
||||||
const Schema = mongoose.Schema;
|
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({
|
const deviceSchema = new Schema({
|
||||||
device_name: {
|
device_name: {
|
||||||
type: String,
|
type: String,
|
||||||
@@ -26,7 +41,11 @@ const deviceSchema = new Schema({
|
|||||||
device_ip_address: {
|
device_ip_address: {
|
||||||
type: String,
|
type: String,
|
||||||
unique: true
|
unique: true
|
||||||
}
|
},
|
||||||
|
update_time: {
|
||||||
|
type: Date
|
||||||
|
},
|
||||||
|
device_log: [deviceLogSchema]
|
||||||
});
|
});
|
||||||
|
|
||||||
const Device = mongoose.model("Device", deviceSchema);
|
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