diff --git a/server/MongoCert.pem b/server/MongoCert.pem new file mode 100644 index 0000000000000000000000000000000000000000..32882c8513622365b80f83b76fd97034f14fa067 --- /dev/null +++ b/server/MongoCert.pem @@ -0,0 +1,81 @@ +-----BEGIN CERTIFICATE----- +MIIFCzCCAvOgAwIBAgIIJciHvv6Yi4gwDQYJKoZIhvcNAQELBQAwSTEhMB8GA1UE +AxMYNjViYjZkMjVjNWE2NzgxMWUxOWMyYjY3MQ4wDAYDVQQLEwVBdGxhczEUMBIG +A1UEChMLTW9uZ29EQiBJbmMwHhcNMjQwMjAxMDkyMDE0WhcNMjYwMjAxMTAyMDE0 +WjAWMRQwEgYDVQQDDAtjZXJ0X2FjY2VzczCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMXNw9D4fe6IWhmOw1emqk5RETZXSCuyh0+uQNyXkQ0OVdl8j1TY +zXqpuvvilz/axIkSba9dMTx/ejKECPmaIlZC6vTgmzdHgftXsm8iBP1audnV36MG +6jvqM7qe1/lQdsDbi94mSLd13/l5hgrENpUgCzp76krcC5wusXLl3OizsYpwrRw6 +uwiZm9DxoSIW87ClWJbklP3XLJHfg2lIPjEcdSHSJkLEcUNzmggYXt4OfiSx8zlr +C6X93zgbPMQZqfO3k3B9hrFzuKDqlIvIm4y3GVuZ0Xj6ncDq262nB4+V+YTAWDRK +5CkKZVJlig4ePd5zTsB2hzJnLBWRlor3L756kcdm/2YtkEijQrewOd4RCOcz5Jx6 +aZdYQMzUPgVJXh0gtNzY/+wq2WBCcypM22WW8/3678iJoIG4hIXsWVtJOubqovB+ +jsbyGMp+5fk1Kqgo7AkiDT7ld/8O60FeR4i7Pa7tiikKKyhg1SnqCwueTzIv43x4 +DciEXKKJRFFwbhTKL2Ty3UkFqYtqD9drXT0p7c9XUs5tzO/Jsx1D+KUq0UosP/Cv +fwp5W31pwjeJyEKHrrVIMj3G/+x5wfmIcsKxj+q00NSerx6WYB5ds7BiMZWDqBWT +Oaj/1w5IY7BDkEslYgkpwosw/CGIYrvLqKpWk0l1L5OgaSjouMLbTAiBAgMBAAGj +KjAoMA4GA1UdDwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkq +hkiG9w0BAQsFAAOCAgEAeoAdO4BMhhqrfka11JHTggyEkBR742LpV4epKWVLFnru +b6+mZrWVCjKaYmOep1u/3f3imtz6Y9L0zFUBVLsE1scqWNK10gZyChrGJuVlOXRM +NXpoLtOvQUxdJmFPmbnBtP3N3GwdTlq7v8kkyoV0z0KoFxHvPIujlCuHPkY4iQc/ +lJYpyzNSmrC3Nyk8jS5QksYaR3A1Ol2puJiqwZBDfl+0ECSS8ovScK4ccYqyo4ze +NT5Uwc0Hr2oHbY4CRViZm+VllwanKeYhFAR3zoLIk5MIh4YlwerZqYRadoKhmRty +1bIEOjeRXoZusF8lIF0/BSaYEnel3xCH5umQWyRUlOkAOnwbqtfY6EaW7xwNFHsS +D34sPvxRJHh9jnCv1127kb3S5aXO+uvqebhdBrP8SOq9pwMgVGhM9y6RsDfz6g78 +Xj8ICrS7Ls+Rah4IX2cPkHkEd7CXuQ7Gsr8jY3RSTBoC1/u98mNIFrkaTYBWqGL4 +X7m9rFWeI4zLwYHPsKO9hwI9+HwaKiVkE4L5tu1Ur0evougxg0T+Eu4VdC1Z6qbg +JJgbUz6oLtUU9Y4Wp2EHQGTzBTA2+1s7PBMQp/49SxpS0N6JILWtSXOqRQ3BQS6p +Zj0k4adusbJ82cMdImcpjjhUlt58kZ2Ms6F5nUU8Tw+XVDxaId2fZ+GhGTgse4I= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +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 +RfOGEADT0A6yOPYYFn8dEALhBSz7 +-----END PRIVATE KEY----- diff --git a/server/main.py b/server/main.py index 0be0458c233890a150d0908297cad7e58b0114e1..efaf20662c0c5bdf27e9796beadfe4dada4f7f92 100644 --- a/server/main.py +++ b/server/main.py @@ -4,41 +4,17 @@ from pymongo.server_api import ServerApi app = Flask(__name__) -# Default route -@app.route('/') -def home(): - return jsonify(message='Welcome to the API!') +uri = "mongodb+srv://icemapcluster.i02epob.mongodb.net/?authSource=%24external&authMechanism=MONGODB-X509&retryWrites=true&w=majority" +try: + client = MongoClient(uri, + tls=True, + tlsCertificateKeyFile='server/MongoCert.pem', + server_api=ServerApi('1')) -# Example endpoint -@app.route('/api/data', methods=['GET']) -def get_data(): - data = {'example_data': [1, 2, 3, 4, 5]} - return jsonify(data) + db = client['IceMapDB'] + collection = db['IceData'] + print("Connected to MongoDB") - - -# Initialise database connection -def init_db(): - # Initialise database connection - uri = "mongodb+srv://icemapcluster.i02epob.mongodb.net/?authSource=%24external&authMechanism=MONGODB-X509&retryWrites=true&w=majority" - - try: - client = MongoClient(uri, - tls=True, - tlsCertificateKeyFile='server/X509-cert-2722575229130410888.pem', - server_api=ServerApi('1')) - - db = client['IceMapDatabase'] - collection = db['GeoDataCollection'] - - # Ping to check connection - client.admin.command('ping') - - print("Connected to MongoDB!") - - except ConnectionFailure as e: - print(f"Failed to connect to MongoDB: {e}") - -if __name__ == "__main__": - init_db() \ No newline at end of file +except Exception as e: + print(f"Failed to connect to MongoDB: {e}") \ No newline at end of file