Skip to content
Snippets Groups Projects
Commit b3cd23da authored by Sara Savanovic Djordjevic's avatar Sara Savanovic Djordjevic
Browse files

add: test data to mongoDB

parent f268466b
No related branches found
No related tags found
No related merge requests found
No preview for this file type
...@@ -76,4 +76,5 @@ class MarkerTemplate: ...@@ -76,4 +76,5 @@ class MarkerTemplate:
'longitude': self.longitude, 'longitude': self.longitude,
'size': self.size, 'size': self.size,
'color': self.color, 'color': self.color,
} }
\ No newline at end of file
\ No newline at end of file
from flask import Flask, jsonify from flask import Flask
from http.server import HTTPServer, BaseHTTPRequestHandler from http.server import HTTPServer, BaseHTTPRequestHandler
from pymongo import MongoClient from pymongo import MongoClient
from pymongo.server_api import ServerApi 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 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 from map.get_markers import get_markers
import atexit from data_structs import Measurement, MarkerTemplate, DateAndTime, Sensor
import ssl import ssl
import keyboard import keyboard
from flask import json
app = Flask(__name__) app = Flask(__name__)
terminate_server = 0 terminate_server = 0
"""
# Initialise MongoDB connection # Initialise MongoDB connection
try: def initDatabase():
client = MongoClient(MONGO_URI, try:
tls=True, client = MongoClient(MONGO_URI,
tlsCertificateKeyFile=MONGO_CERT_PATH, tls=True,
server_api=ServerApi('1')) 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 # Define HTTP class
class IceHTTP(BaseHTTPRequestHandler): class IceHTTP(BaseHTTPRequestHandler):
...@@ -60,7 +63,38 @@ def on_key_press(server, event): ...@@ -60,7 +63,38 @@ def on_key_press(server, event):
# Start a server on port 8443 using self defined HTTP class # Start a server on port 8443 using self defined HTTP class
if __name__ == "__main__": 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: try:
# Load SSL certificate and private key # Load SSL certificate and private key
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment