Create Log Save System

This commit is contained in:
2024-03-05 00:26:10 +03:00
parent a5b7d0edfe
commit c55b16d259
6 changed files with 105 additions and 18 deletions

4
app.js
View File

@@ -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!"});

View 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 };

View File

@@ -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()
}
};

View File

@@ -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);

View File

@@ -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
View 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;