on/off add
This commit is contained in:
30
app.js
30
app.js
@@ -5,36 +5,42 @@ const mongoose = require("mongoose");
|
|||||||
const configs = require("./configs");
|
const configs = require("./configs");
|
||||||
const chalk = require("chalk");
|
const chalk = require("chalk");
|
||||||
const helmet = require("helmet");
|
const helmet = require("helmet");
|
||||||
const config = require('./configs');
|
const config = require("./configs");
|
||||||
const morgan = require("morgan");
|
const morgan = require("morgan");
|
||||||
|
const fetch = require('node-fetch');
|
||||||
|
|
||||||
app.use(express.urlencoded({extended: true}));
|
app.use(express.urlencoded({ extended: true }));
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(helmet());
|
app.use(helmet());
|
||||||
|
|
||||||
// Logs
|
// Logs
|
||||||
app.use(morgan('dev'));
|
app.use(morgan("dev"));
|
||||||
|
|
||||||
// Connect Mongoose
|
// Connect Mongoose
|
||||||
mongoose.connect(configs.mongodburl, {
|
mongoose
|
||||||
|
.connect(configs.mongodburl, {
|
||||||
autoIndex: true
|
autoIndex: true
|
||||||
}).then(() => {
|
})
|
||||||
|
.then(() => {
|
||||||
console.log(chalk.cyanBright.bold("Mongodb is live!"));
|
console.log(chalk.cyanBright.bold("Mongodb is live!"));
|
||||||
}).catch((error) => {
|
})
|
||||||
|
.catch((error) => {
|
||||||
console.log("Mongodb error: " + error.message);
|
console.log("Mongodb error: " + error.message);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Save Route
|
// Save Route
|
||||||
app.use("/api/save", require("./route/save.route"));
|
app.use("/api/save", require("./route/save.route"));
|
||||||
|
// Device Set Route
|
||||||
|
app.use("/api/set", require("./route/device.set.route"));
|
||||||
// Device Log Route
|
// Device Log Route
|
||||||
app.use("/api/device-log", require("./route/device.log.route"));
|
app.use("/api/device-log", require("./route/device.log.route"));
|
||||||
// Wrong Endpoint
|
// 404 Not Found Endpoint
|
||||||
app.use("/api/*", (req, res) => {
|
app.use((req, res) => {
|
||||||
res.status(400).json({error: true, message: "Invalid api end point!"});
|
res.status(404).json({ error: true, message: "Not found!" });
|
||||||
});
|
});
|
||||||
// Root public route
|
// Root public route
|
||||||
app.use("*", (req, res) => { // res.sendFile("public/", { root: __dirname });
|
app.use("*", (req, res) => {
|
||||||
|
// res.sendFile("public/", { root: __dirname });
|
||||||
res.sendStatus(400);
|
res.sendStatus(400);
|
||||||
});
|
});
|
||||||
// Server Listening
|
// Server Listening
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
const configs = require("../configs");
|
const configs = require("../configs");
|
||||||
const DeviceModel = require("../models/device.model");
|
const Library = require("../library");
|
||||||
|
|
||||||
const set = async (
|
const logSave = async (
|
||||||
token,
|
token,
|
||||||
device_id,
|
device_id,
|
||||||
remote_name,
|
remote_name,
|
||||||
@@ -10,38 +10,20 @@ const set = async (
|
|||||||
) => {
|
) => {
|
||||||
if (token === configs.verifyToken) {
|
if (token === configs.verifyToken) {
|
||||||
try {
|
try {
|
||||||
// Önce kaydı bulalım
|
const result = await Library.saveDeviceLog(
|
||||||
const filter = {
|
device_id,
|
||||||
_id: device_id
|
|
||||||
};
|
|
||||||
|
|
||||||
const update = {
|
|
||||||
$push: {
|
|
||||||
device_log: {
|
|
||||||
remote_name,
|
remote_name,
|
||||||
remote_type,
|
remote_type,
|
||||||
operating_type,
|
operating_type
|
||||||
log_time: Date.now()
|
);
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const result = await DeviceModel.updateOne(filter, update);
|
return result;
|
||||||
|
|
||||||
if (result.nModified === 0) {
|
|
||||||
throw new Error("Güncellenmek istenen kayıt bulunamadı");
|
|
||||||
}
|
|
||||||
|
|
||||||
return "Log Kaydedildi!";
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// if (error.code === 11000) {
|
throw new Error("Mongodb'ye kaydedilirken hata oluştu (log.controller)");
|
||||||
// throw new Error("Zaten kaydedilmiş");
|
|
||||||
// }
|
|
||||||
throw new Error("Mongodb'ye kaydedilirken hata oluştu");
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new Error("Hatalı token");
|
throw new Error("Hatalı token (log.controller)");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = { set };
|
module.exports = { logSave };
|
||||||
|
|||||||
38
controller/device.set.controller.js
Normal file
38
controller/device.set.controller.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
const config = require("../configs");
|
||||||
|
const configs = require("../configs");
|
||||||
|
const Library = require("../library");
|
||||||
|
const DeviceModel = require("../models/device.model");
|
||||||
|
const fetch = require("node-fetch");
|
||||||
|
|
||||||
|
const set = async (token, device_id, remote_name, remote_type, operating_type) => {
|
||||||
|
if (token === configs.verifyToken) {
|
||||||
|
try {
|
||||||
|
const deviceExist = await DeviceModel.findOne({
|
||||||
|
_id: device_id
|
||||||
|
});
|
||||||
|
if (deviceExist) {
|
||||||
|
const hostname = deviceExist.device_ip_address;
|
||||||
|
const path = "on";
|
||||||
|
const response = await fetch(
|
||||||
|
"http://" + hostname + "/" + path + "?token=" + configs.verifyToken
|
||||||
|
);
|
||||||
|
|
||||||
|
const isOpen = await response.text();
|
||||||
|
if (isOpen) {
|
||||||
|
Library.saveDeviceLog(device_id, remote_name, remote_type, operating_type);
|
||||||
|
return "Cihaz açıldı"
|
||||||
|
}else{
|
||||||
|
throw new Error("Cihaz açılırken hata oluştu!");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error("Cihaz bulunamadı!");
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error("Mongodb: " + error.message + " (set.controller)");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error("Hatalı token (set.controller)");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = { set };
|
||||||
@@ -63,13 +63,10 @@ const save = async (
|
|||||||
return "IP Adresi güncellendi";
|
return "IP Adresi güncellendi";
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// if (error.code === 11000) {
|
throw new Error("Mongodb: " + error.message + " (save.controller)");
|
||||||
// throw new Error("Zaten kaydedilmiş");
|
|
||||||
// }
|
|
||||||
throw new Error("Mongodb'ye kaydedilirken hata oluştu");
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new Error("Hatalı token");
|
throw new Error("Hatalı token (save.controller)");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
39
library/index.js
Normal file
39
library/index.js
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
const configs = require("../configs");
|
||||||
|
const DeviceModel = require("../models/device.model");
|
||||||
|
|
||||||
|
const saveDeviceLog = async (
|
||||||
|
device_id,
|
||||||
|
remote_name,
|
||||||
|
remote_type,
|
||||||
|
operating_type
|
||||||
|
) => {
|
||||||
|
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ı (library)");
|
||||||
|
}
|
||||||
|
|
||||||
|
return "Log Kaydedildi!";
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error("Mongodb'ye kaydedilirken hata oluştu (library)");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = { saveDeviceLog };
|
||||||
@@ -1,14 +1,15 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"chalk": "^4.0.0",
|
||||||
"create-react-app": "^5.0.1",
|
"create-react-app": "^5.0.1",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"helmet": "^7.1.0",
|
"helmet": "^7.1.0",
|
||||||
"mongoose": "^8.2.0",
|
"mongoose": "^8.2.0",
|
||||||
"morgan": "^1.10.0",
|
"morgan": "^1.10.0",
|
||||||
|
"node-fetch": "^2.7.0",
|
||||||
"nodemon": "^3.1.0",
|
"nodemon": "^3.1.0",
|
||||||
"socket.io": "^4.7.4",
|
"socket.io": "^4.7.4"
|
||||||
"chalk": "^4.0.0"
|
|
||||||
},
|
},
|
||||||
"name": "wisecolt-mancmini",
|
"name": "wisecolt-mancmini",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ router.use(express.json());
|
|||||||
router.post("/", async (req, res) => {
|
router.post("/", async (req, res) => {
|
||||||
try {
|
try {
|
||||||
// Token Control Middleware
|
// Token Control Middleware
|
||||||
const result = await DeviceLogController.set(
|
const result = await DeviceLogController.logSave(
|
||||||
req.body.token,
|
req.body.token,
|
||||||
req.body.device_id,
|
req.body.device_id,
|
||||||
req.body.remote_name,
|
req.body.remote_name,
|
||||||
|
|||||||
38
route/device.set.route.js
Normal file
38
route/device.set.route.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
const express = require("express");
|
||||||
|
const router = express.Router();
|
||||||
|
const DeviceSetController = require("../controller/device.set.controller");
|
||||||
|
|
||||||
|
router.use(express.urlencoded({ extended: false }));
|
||||||
|
router.use(express.json());
|
||||||
|
|
||||||
|
// Device Log Save route
|
||||||
|
router.get(
|
||||||
|
"/:operating_type/:token/:device_id/:remote_name/:remote_type",
|
||||||
|
async (req, res) => {
|
||||||
|
try {
|
||||||
|
const { token, device_id, remote_name, remote_type, operating_type } =
|
||||||
|
req.params;
|
||||||
|
|
||||||
|
// Token Control Middleware
|
||||||
|
const result = await DeviceSetController.set(
|
||||||
|
token,
|
||||||
|
device_id,
|
||||||
|
remote_name,
|
||||||
|
remote_type,
|
||||||
|
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