diff --git a/server/__pycache__/data_structs.cpython-311.pyc b/server/__pycache__/data_structs.cpython-311.pyc index 4163607b4b1b56fb78c7310f4a0863892bb42ce3..928637c84a08e29d4863306f8637968ec21e14cb 100644 Binary files a/server/__pycache__/data_structs.cpython-311.pyc and b/server/__pycache__/data_structs.cpython-311.pyc differ diff --git a/server/data_structs.py b/server/data_structs.py index 26428d4f6e4fb7d187ca34b003692c297a33d184..e35a41e4dc946067e27775f8fbc6f465a664910b 100644 --- a/server/data_structs.py +++ b/server/data_structs.py @@ -76,4 +76,5 @@ class MarkerTemplate: 'longitude': self.longitude, 'size': self.size, 'color': self.color, - } \ No newline at end of file + } + \ No newline at end of file diff --git a/server/database/add_to_db.py b/server/database/add_to_db.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/server/main.py b/server/main.py index ace59dd7c48a455f0c2d901fed9741c822d006d0..6074e4021613f227c582b959ad30f48d6ccc49bb 100644 --- a/server/main.py +++ b/server/main.py @@ -1,30 +1,33 @@ -from flask import Flask, jsonify +from flask import Flask from http.server import HTTPServer, BaseHTTPRequestHandler from pymongo import MongoClient from pymongo.server_api import ServerApi from consts import DB_NAME, COLLECTION, MONGO_URI, MONGO_CERT_PATH, SSL_CERT_PATH, SSL_KEY_PATH, HOST, PORT from map.get_markers import get_markers -import atexit +from data_structs import Measurement, MarkerTemplate, DateAndTime, Sensor import ssl import keyboard +from flask import json app = Flask(__name__) terminate_server = 0 -""" + # Initialise MongoDB connection -try: - client = MongoClient(MONGO_URI, - tls=True, - tlsCertificateKeyFile=MONGO_CERT_PATH, - server_api=ServerApi('1')) +def initDatabase(): + try: + client = MongoClient(MONGO_URI, + tls=True, + tlsCertificateKeyFile=MONGO_CERT_PATH, + server_api=ServerApi('1')) + + db = client[DB_NAME] + collection = db[COLLECTION] + print("Connected to MongoDB") + return client + except Exception as e: + print(f"Failed to connect to MongoDB: {e}") - db = client[DB_NAME] - collection = db[COLLECTION] - print("Connected to MongoDB") -except Exception as e: - print(f"Failed to connect to MongoDB: {e}") -""" # Define HTTP class class IceHTTP(BaseHTTPRequestHandler): @@ -60,7 +63,38 @@ def on_key_press(server, event): # Start a server on port 8443 using self defined HTTP class if __name__ == "__main__": - print("Starting server on port ", PORT) + # Initialise database connection + client = initDatabase() + + db = client[DB_NAME] + testCol = db["TestCollection"] + + # NB: temporary test data + sensor1 = Sensor(ID=1, type="Type1", active=True) + sensor2 = Sensor(ID=2, type="Type2", active=False) + + datetime1 = DateAndTime(2023, 12, 31, 15, 43) + datetime2 = DateAndTime(2024, 1, 15, 12, 2) + datetime3 = DateAndTime(2024, 1, 31, 18, 10) + + measurement1 = Measurement(longitude=10.9771, latitude=60.7066, datetime=datetime1, sensor=sensor1, + precipitation=0.0, thickness=0.0, max_weight=0.0, safety_level=0.0, accuracy=2.5) + measurement2 = Measurement(longitude=10.8171, latitude=60.6366, datetime=datetime2, sensor=sensor2, + precipitation=0.0, thickness=0.0, max_weight=0.0, safety_level=0.0, accuracy=1.5) + measurement3 = Measurement(longitude=10.8471, latitude=60.7366, datetime=datetime3, sensor=sensor1, + precipitation=0.0, thickness=0.0, max_weight=0.0, safety_level=0.0, accuracy=4.0) + + testData = [ + MarkerTemplate(measurement1, 30.0-measurement1.accuracy, "Green"), + MarkerTemplate(measurement2, 10.0-measurement2.accuracy, "Red"), + MarkerTemplate(measurement3, 20.0-measurement3.accuracy, "Yellow"), + ] + + data_to_insert = [marker_template.to_dict() for marker_template in testData] + + for element in data_to_insert: + insert_result = testCol.insert_one(element) + try: # Load SSL certificate and private key ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) diff --git a/server/map/__pycache__/get_markers.cpython-311.pyc b/server/map/__pycache__/get_markers.cpython-311.pyc index fe067d8d451136985eb529449e19ff358e97b22b..0a4fa70dc8d5db158534773773e880a98e27b1ea 100644 Binary files a/server/map/__pycache__/get_markers.cpython-311.pyc and b/server/map/__pycache__/get_markers.cpython-311.pyc differ