From b3cd23da062d6c2fc94abb5ff4397afa3b0b2895 Mon Sep 17 00:00:00 2001 From: Sara <sarasdj@stud.ntnu.no> Date: Sun, 11 Feb 2024 21:26:32 +0100 Subject: [PATCH] add: test data to mongoDB --- .../__pycache__/data_structs.cpython-311.pyc | Bin 3945 -> 3945 bytes server/data_structs.py | 3 +- server/database/add_to_db.py | 0 server/main.py | 64 ++++++++++++++---- .../__pycache__/get_markers.cpython-311.pyc | Bin 2626 -> 2626 bytes 5 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 server/database/add_to_db.py diff --git a/server/__pycache__/data_structs.cpython-311.pyc b/server/__pycache__/data_structs.cpython-311.pyc index 4163607b4b1b56fb78c7310f4a0863892bb42ce3..928637c84a08e29d4863306f8637968ec21e14cb 100644 GIT binary patch delta 22 ccmaDU_fn2`IWI340}y=CIhmTXkvE1P08qaM$^ZZW delta 22 ccmaDU_fn2`IWI340}zNy97|2x$Q#2C07xeV&;S4c diff --git a/server/data_structs.py b/server/data_structs.py index 26428d4f..e35a41e4 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 00000000..e69de29b diff --git a/server/main.py b/server/main.py index ace59dd7..6074e402 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 GIT binary patch delta 27 hcmX>ka!7=GIWI340}y;sJGqg22`gjr<_)ZqSO9Jd2rU2r delta 27 hcmX>ka!7=GIWI340}%WZKemy32`i)X<_)ZqSO9GB2n7HD -- GitLab