From 1bd3a5e2f2a3d14990b81d4a4274246924a49d9d Mon Sep 17 00:00:00 2001 From: pratyushkrsahu <ps01598@surrey.ac.uk> Date: Mon, 6 May 2024 22:48:39 +0100 Subject: [PATCH] Fixed the hardcoded database connection to .env files --- .env | 5 +++++ admins_service/main.py | 18 ++++++++++++------ bikes_service/main.py | 17 +++++++++++------ booking_service/main.py | 16 +++++++++++----- rentals_service/main.py | 17 +++++++++++------ requirements.txt | 1 + reviews_service/main.py | 18 +++++++++++------- users_service/main.py | 17 +++++++++++------ 8 files changed, 73 insertions(+), 36 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..7382c15 --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +DB_HOST=database-1.cz0ucmk42cu5.us-east-1.rds.amazonaws.com +DB_PORT=3306 +DB_USER=admin +DB_PASSWORD=Test#321 +DB_DATABASE=cycle_connect \ No newline at end of file diff --git a/admins_service/main.py b/admins_service/main.py index a929596..5c8ad8e 100644 --- a/admins_service/main.py +++ b/admins_service/main.py @@ -5,6 +5,8 @@ import sqlite3 import mysql.connector from pathlib import Path from typing import Optional, Tuple, List +from dotenv import load_dotenv +import os app = FastAPI() @@ -45,16 +47,20 @@ app.add_middleware( # database='your_database' # ) + + +load_dotenv() # Take environment variables from .env. + db_connection = mysql.connector.connect( - host='database-1.cz0ucmk42cu5.us-east-1.rds.amazonaws.com', # or '127.0.0.1' for IPv4 loopback - port='3306', # Specify the port number here - user='admin', - password='Test#321', - database='cycle_connect' + host=os.getenv('DB_HOST'), + port=os.getenv('DB_PORT'), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + database=os.getenv('DB_DATABASE') ) - cursor = db_connection.cursor() + # # Create the Admins table if it doesn't exist # cursor.execute(''' # CREATE TABLE IF NOT EXISTS Admins ( diff --git a/bikes_service/main.py b/bikes_service/main.py index b229410..f9b6ec3 100644 --- a/bikes_service/main.py +++ b/bikes_service/main.py @@ -6,7 +6,9 @@ from typing import List import sqlite3 from pathlib import Path from typing import Optional -import mysql.connector +import mysql.connector +from dotenv import load_dotenv +import os app = FastAPI() @@ -34,16 +36,19 @@ app.add_middleware( # database='your_database' # ) +load_dotenv() # Take environment variables from .env. + db_connection = mysql.connector.connect( - host='database-1.cz0ucmk42cu5.us-east-1.rds.amazonaws.com', # or '127.0.0.1' for IPv4 loopback - port='3306', # Specify the port number here - user='admin', - password='Test#321', - database='cycle_connect' + host=os.getenv('DB_HOST'), + port=os.getenv('DB_PORT'), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + database=os.getenv('DB_DATABASE') ) cursor = db_connection.cursor() + # Bike model class Bike(BaseModel): model: str diff --git a/booking_service/main.py b/booking_service/main.py index ce274e8..75700e5 100644 --- a/booking_service/main.py +++ b/booking_service/main.py @@ -9,6 +9,9 @@ import sqlite3 from pathlib import Path from typing import List import mysql.connector +from dotenv import load_dotenv +import os + app = FastAPI() @@ -21,12 +24,15 @@ app.add_middleware( allow_headers=["*"], ) + +load_dotenv() # Take environment variables from .env. + db_connection = mysql.connector.connect( - host='database-1.cz0ucmk42cu5.us-east-1.rds.amazonaws.com', # or '127.0.0.1' for IPv4 loopback - port='3306', # Specify the port number here - user='admin', - password='Test#321', - database='cycle_connect' + host=os.getenv('DB_HOST'), + port=os.getenv('DB_PORT'), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + database=os.getenv('DB_DATABASE') ) cursor = db_connection.cursor() diff --git a/rentals_service/main.py b/rentals_service/main.py index b1c8594..eca1a8a 100644 --- a/rentals_service/main.py +++ b/rentals_service/main.py @@ -8,6 +8,8 @@ from typing import Optional from fastapi import HTTPException import mysql.connector from decimal import Decimal +from dotenv import load_dotenv +import os app = FastAPI() @@ -20,17 +22,20 @@ app.add_middleware( allow_headers=["*"], ) + +load_dotenv() # Take environment variables from .env. + db_connection = mysql.connector.connect( - host='database-1.cz0ucmk42cu5.us-east-1.rds.amazonaws.com', # or '127.0.0.1' for IPv4 loopback - port='3306', # Specify the port number here - user='admin', - password='Test#321', - database='cycle_connect' + host=os.getenv('DB_HOST'), + port=os.getenv('DB_PORT'), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + database=os.getenv('DB_DATABASE') ) - cursor = db_connection.cursor() + # Rental model class Rental(BaseModel): booking_id: int diff --git a/requirements.txt b/requirements.txt index 14602c3..a7bfeb9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -34,3 +34,4 @@ watchfiles==0.21.0 websockets==12.0 mysql-connector-python apscheduler +python-dotenv diff --git a/reviews_service/main.py b/reviews_service/main.py index bba54cf..bf5ff0b 100644 --- a/reviews_service/main.py +++ b/reviews_service/main.py @@ -5,7 +5,9 @@ from typing import List import sqlite3 from pathlib import Path from typing import Optional -import mysql.connector +import mysql.connector +from dotenv import load_dotenv +import os app = FastAPI() # Allow requests from all origins @@ -19,17 +21,19 @@ app.add_middleware( +load_dotenv() # Take environment variables from .env. + db_connection = mysql.connector.connect( - host='database-1.cz0ucmk42cu5.us-east-1.rds.amazonaws.com', # or '127.0.0.1' for IPv4 loopback - port='3306', # Specify the port number here - user='admin', - password='Test#321', - database='cycle_connect' + host=os.getenv('DB_HOST'), + port=os.getenv('DB_PORT'), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + database=os.getenv('DB_DATABASE') ) - cursor = db_connection.cursor() + # Review model class Review(BaseModel): user_id: int diff --git a/users_service/main.py b/users_service/main.py index d4a7d25..956c480 100644 --- a/users_service/main.py +++ b/users_service/main.py @@ -7,6 +7,9 @@ import mysql.connector from pathlib import Path from typing import Optional from datetime import datetime +from dotenv import load_dotenv +import os + app = FastAPI() @@ -21,14 +24,16 @@ app.add_middleware( + +load_dotenv() # Take environment variables from .env. + db_connection = mysql.connector.connect( - host='database-1.cz0ucmk42cu5.us-east-1.rds.amazonaws.com', # or '127.0.0.1' for IPv4 loopback - port='3306', # Specify the port number here - user='admin', - password='Test#321', - database='cycle_connect' + host=os.getenv('DB_HOST'), + port=os.getenv('DB_PORT'), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + database=os.getenv('DB_DATABASE') ) - cursor = db_connection.cursor() class User(BaseModel): -- GitLab