From cae50f7ee1b46ff8bd66ca9b15e1905efd0c8838 Mon Sep 17 00:00:00 2001 From: Freitas_Enzo Date: Fri, 13 Mar 2026 09:02:29 +0000 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"/"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- authMiddleware.js | 15 +++++++++++++++ database.js | 18 ++++++++++++++++++ model.js | 18 ++++++++++++++++++ server.js | 16 ++++++++++++++++ user.js | 21 +++++++++++++++++++++ 5 files changed, 88 insertions(+) create mode 100644 authMiddleware.js create mode 100644 database.js create mode 100644 model.js create mode 100644 server.js create mode 100644 user.js diff --git a/authMiddleware.js b/authMiddleware.js new file mode 100644 index 0000000..ae3cd4e --- /dev/null +++ b/authMiddleware.js @@ -0,0 +1,15 @@ +const jwt = require("jsonwebtoken"); + +const verifyToken = (req, res, next) => { + const token = req.headers["authorization"]; + + if (!token) return res.status(403).json({ message: "Token manquant." }); + + jwt.verify(token, "secretKey123", (err, decoded) => { + if (err) return res.status(401).json({ message: "Token invalide." }); + req.user = decoded; + next(); + }); +}; + +module.exports = verifyToken; \ No newline at end of file diff --git a/database.js b/database.js new file mode 100644 index 0000000..45b523b --- /dev/null +++ b/database.js @@ -0,0 +1,18 @@ +const mysql = require("mysql2"); + +const db = mysql.createConnection({ + host: "localhost", + user: "root", + password: "", + database: "smart_home" +}); + +db.connect(err => { + if (err) { + console.error("Erreur de connexion à MySQL :", err); + } else { + console.log("Connecté à la base MySQL."); + } +}); + +module.exports = db; \ No newline at end of file diff --git a/model.js b/model.js new file mode 100644 index 0000000..71e9561 --- /dev/null +++ b/model.js @@ -0,0 +1,18 @@ +const db = require("../config/database"); + +const getAllUsers = (callback) => { + db.query("SELECT * FROM users", callback); +}; + +const addUser = (name, email, callback) => { + db.query( + "INSERT INTO users (name, email) VALUES (?, ?)", + [name, email], + callback + ); +}; + +module.exports = { + getAllUsers, + addUser +}; \ No newline at end of file diff --git a/server.js b/server.js new file mode 100644 index 0000000..b86e0f0 --- /dev/null +++ b/server.js @@ -0,0 +1,16 @@ +const express = require("express"); +const cors = require("cors"); + +const app = express(); +const PORT = 3000; + +app.use(cors()); +app.use(express.json()); + +app.get("/", (req, res) => { + res.json({ message: "Smart Home fonctionne" }); +}); + +app.listen(PORT, () => { + console.log(`Serveur lancé sur http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/user.js b/user.js new file mode 100644 index 0000000..9c6a7f0 --- /dev/null +++ b/user.js @@ -0,0 +1,21 @@ +const express = require("express"); +const router = express.Router(); +const userModel = require("../models/userModel"); + +router.get("/", (req, res) => { + userModel.getAllUsers((err, results) => { + if (err) return res.status(500).json(err); + res.json(results); + }); +}); + +router.post("/", (req, res) => { + const { name, email } = req.body; + + userModel.addUser(name, email, (err, result) => { + if (err) return res.status(500).json(err); + res.json({ message: "Utilisateur ajouté." }); + }); +}); + +module.exports = router; \ No newline at end of file