Téléverser les fichiers vers "routes"

This commit is contained in:
2026-05-28 13:23:03 +00:00
parent b92af115b0
commit ad65b2871a
4 changed files with 116 additions and 0 deletions

BIN
routes/__init__.py Normal file

Binary file not shown.

34
routes/auth.py Normal file
View File

@@ -0,0 +1,34 @@
from flask import Blueprint, jsonify, request
from flask_jwt_extended import create_access_token
import pymysql
from config import Config
auth_bp = Blueprint('auth', __name__)
def get_db():
return pymysql.connect(
host=Config.MYSQL_HOST,
user=Config.MYSQL_USER,
password=Config.MYSQL_PASSWORD,
database=Config.MYSQL_DB,
cursorclass=pymysql.cursors.DictCursor
)
#POST — Login et génération du token JWT
@auth_bp.route('/login', methods=['POST'])
def login():
body = request.get_json()
username = body.get('username')
password = body.get('password')
db = get_db()
cursor = db.cursor()
cursor.execute("SELECT * FROM users WHERE username=%s AND password=%s", (username, password))
user = cursor.fetchone()
db.close()
if user:
token = create_access_token(identity=username)
return jsonify({'token': token}), 200
else:
return jsonify({'message': 'Identifiants incorrects'}), 401

41
routes/climate.py Normal file
View File

@@ -0,0 +1,41 @@
from flask import Blueprint, jsonify, request
from flask_jwt_extended import jwt_required
import pymysql
from config import Config
climate_bp = Blueprint('climate', __name__)
def get_db():
return pymysql.connect(
host=Config.MYSQL_HOST,
user=Config.MYSQL_USER,
password=Config.MYSQL_PASSWORD,
database=Config.MYSQL_DB,
cursorclass=pymysql.cursors.DictCursor
)
#GET — Récupérer toutes les données climatiques
@climate_bp.route('/', methods=['GET'])
@jwt_required()
def get_climate():
db = get_db()
cursor = db.cursor()
cursor.execute("SELECT * FROM climate_data ORDER BY timestamp DESC LIMIT 50")
data = cursor.fetchall()
db.close()
return jsonify(data), 200
#POST — Ajouter une donnée climatique
@climate_bp.route('/', methods=['POST'])
@jwt_required()
def add_climate():
body = request.get_json()
db = get_db()
cursor = db.cursor()
cursor.execute(
"INSERT INTO climate_data (temperature, humidity, pressure, luminosity) VALUES (%s, %s, %s, %s)",
(body.get('temperature'), body.get('humidity'), body.get('pressure'), body.get('luminosity'))
)
db.commit()
db.close()
return jsonify({'message': 'Donnée ajoutée avec succès'}), 201

41
routes/security.py Normal file
View File

@@ -0,0 +1,41 @@
from flask import Blueprint, jsonify, request
from flask_jwt_extended import jwt_required
import pymysql
from config import Config
security_bp = Blueprint('security', __name__)
def get_db():
return pymysql.connect(
host=Config.MYSQL_HOST,
user=Config.MYSQL_USER,
password=Config.MYSQL_PASSWORD,
database=Config.MYSQL_DB,
cursorclass=pymysql.cursors.DictCursor
)
#GET — Récupérer tous les événements de sécurité
@security_bp.route('/', methods=['GET'])
@jwt_required()
def get_security():
db = get_db()
cursor = db.cursor()
cursor.execute("SELECT * FROM security_events ORDER BY timestamp DESC LIMIT 50")
data = cursor.fetchall()
db.close()
return jsonify(data), 200
# POST — Ajouter un événement de sécurité
@security_bp.route('/', methods=['POST'])
@jwt_required()
def add_security():
body = request.get_json()
db = get_db()
cursor = db.cursor()
cursor.execute(
"INSERT INTO security_events (event_type, location) VALUES (%s, %s)",
(body.get('event_type'), body.get('location'))
)
db.commit()
db.close()
return jsonify({'message': 'Événement ajouté avec succès'}), 201