From 96601f09129522089799436507f0297ea6a3e32c Mon Sep 17 00:00:00 2001
From: Navin Chandra <nc01009@surrey.ac.uk>
Date: Thu, 2 May 2024 20:14:32 +0530
Subject: [PATCH] new changes related to docker file and API bug fix

---
 .../Dockerfile                                |   2 ++
 .../admins_service => admins_service}/main.py |   0
 .../DockerFIle => bikes_service/Dockerfile    |   1 +
 .../local_bike.db                             | Bin
 .../bikes_service => bikes_service}/main.py   |   0
 microservices/admins_service/requirements.txt |  34 ------------------
 microservices/bikes_service/requirements.txt  |  34 ------------------
 microservices/my_ride.db                      | Bin 61440 -> 0 bytes
 .../rentals_service/requirements.txt          |  34 ------------------
 .../reviews_service/requirements.txt          |  34 ------------------
 microservices/users_service/requirements.txt  |  34 ------------------
 .../DockerFIle => rentals_service/Dockerfile  |   3 ++
 .../main.py                                   |   0
 .../DockerFIle => reviews_service/Dockerfile  |   5 +--
 .../main.py                                   |   2 +-
 .../DockerFIle => users_service/Dockerfile    |   5 +--
 .../users_service => users_service}/main.py   |   0
 17 files changed, 13 insertions(+), 175 deletions(-)
 rename {microservices/bikes_service => admins_service}/Dockerfile (89%)
 rename {microservices/admins_service => admins_service}/main.py (100%)
 rename microservices/admins_service/DockerFIle => bikes_service/Dockerfile (89%)
 rename {microservices/bikes_service => bikes_service}/local_bike.db (100%)
 rename {microservices/bikes_service => bikes_service}/main.py (100%)
 delete mode 100644 microservices/admins_service/requirements.txt
 delete mode 100644 microservices/bikes_service/requirements.txt
 delete mode 100644 microservices/my_ride.db
 delete mode 100644 microservices/rentals_service/requirements.txt
 delete mode 100644 microservices/reviews_service/requirements.txt
 delete mode 100644 microservices/users_service/requirements.txt
 rename microservices/rentals_service/DockerFIle => rentals_service/Dockerfile (87%)
 rename {microservices/rentals_service => rentals_service}/main.py (100%)
 rename microservices/users_service/DockerFIle => reviews_service/Dockerfile (72%)
 rename {microservices/reviews_service => reviews_service}/main.py (98%)
 rename microservices/reviews_service/DockerFIle => users_service/Dockerfile (72%)
 rename {microservices/users_service => users_service}/main.py (100%)

diff --git a/microservices/bikes_service/Dockerfile b/admins_service/Dockerfile
similarity index 89%
rename from microservices/bikes_service/Dockerfile
rename to admins_service/Dockerfile
index 6780237..a1edbd7 100644
--- a/microservices/bikes_service/Dockerfile
+++ b/admins_service/Dockerfile
@@ -12,6 +12,8 @@ RUN pip install --no-cache-dir -r requirements.txt
 
 # Copy the rest of the application code to the working directory
 COPY . .
+
+# Expose the port specified by the environment variable
 EXPOSE 8001
 
 # Command to run the application
diff --git a/microservices/admins_service/main.py b/admins_service/main.py
similarity index 100%
rename from microservices/admins_service/main.py
rename to admins_service/main.py
diff --git a/microservices/admins_service/DockerFIle b/bikes_service/Dockerfile
similarity index 89%
rename from microservices/admins_service/DockerFIle
rename to bikes_service/Dockerfile
index 1b85985..461dd72 100644
--- a/microservices/admins_service/DockerFIle
+++ b/bikes_service/Dockerfile
@@ -13,6 +13,7 @@ RUN pip install --no-cache-dir -r requirements.txt
 # Copy the rest of the application code to the working directory
 COPY . .
 
+# Expose the port specified by the environment variable
 EXPOSE 8002
 
 # Command to run the application
diff --git a/microservices/bikes_service/local_bike.db b/bikes_service/local_bike.db
similarity index 100%
rename from microservices/bikes_service/local_bike.db
rename to bikes_service/local_bike.db
diff --git a/microservices/bikes_service/main.py b/bikes_service/main.py
similarity index 100%
rename from microservices/bikes_service/main.py
rename to bikes_service/main.py
diff --git a/microservices/admins_service/requirements.txt b/microservices/admins_service/requirements.txt
deleted file mode 100644
index 6c5d0fd..0000000
--- a/microservices/admins_service/requirements.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-annotated-types==0.6.0
-anyio==4.3.0
-certifi==2024.2.2
-click==8.1.7
-dnspython==2.6.1
-email_validator==2.1.1
-exceptiongroup==1.2.0
-fastapi==0.110.0
-greenlet==3.0.3
-h11==0.14.0
-httpcore==1.0.5
-httptools==0.6.1
-httpx==0.27.0
-idna==3.6
-itsdangerous==2.1.2
-Jinja2==3.1.3
-MarkupSafe==2.1.5
-orjson==3.10.0
-pydantic==2.6.4
-pydantic-extra-types==2.6.0
-pydantic-settings==2.2.1
-pydantic_core==2.16.3
-python-dotenv==1.0.1
-python-multipart==0.0.9
-PyYAML==6.0.1
-sniffio==1.3.1
-SQLAlchemy==2.0.29
-starlette==0.36.3
-typing_extensions==4.10.0
-ujson==5.9.0
-uvicorn==0.29.0
-uvloop==0.19.0
-watchfiles==0.21.0
-websockets==12.0
diff --git a/microservices/bikes_service/requirements.txt b/microservices/bikes_service/requirements.txt
deleted file mode 100644
index 6c5d0fd..0000000
--- a/microservices/bikes_service/requirements.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-annotated-types==0.6.0
-anyio==4.3.0
-certifi==2024.2.2
-click==8.1.7
-dnspython==2.6.1
-email_validator==2.1.1
-exceptiongroup==1.2.0
-fastapi==0.110.0
-greenlet==3.0.3
-h11==0.14.0
-httpcore==1.0.5
-httptools==0.6.1
-httpx==0.27.0
-idna==3.6
-itsdangerous==2.1.2
-Jinja2==3.1.3
-MarkupSafe==2.1.5
-orjson==3.10.0
-pydantic==2.6.4
-pydantic-extra-types==2.6.0
-pydantic-settings==2.2.1
-pydantic_core==2.16.3
-python-dotenv==1.0.1
-python-multipart==0.0.9
-PyYAML==6.0.1
-sniffio==1.3.1
-SQLAlchemy==2.0.29
-starlette==0.36.3
-typing_extensions==4.10.0
-ujson==5.9.0
-uvicorn==0.29.0
-uvloop==0.19.0
-watchfiles==0.21.0
-websockets==12.0
diff --git a/microservices/my_ride.db b/microservices/my_ride.db
deleted file mode 100644
index 865b2b7182c807dfa9118534660eb75e09466302..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 61440
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

diff --git a/microservices/rentals_service/requirements.txt b/microservices/rentals_service/requirements.txt
deleted file mode 100644
index 6c5d0fd..0000000
--- a/microservices/rentals_service/requirements.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-annotated-types==0.6.0
-anyio==4.3.0
-certifi==2024.2.2
-click==8.1.7
-dnspython==2.6.1
-email_validator==2.1.1
-exceptiongroup==1.2.0
-fastapi==0.110.0
-greenlet==3.0.3
-h11==0.14.0
-httpcore==1.0.5
-httptools==0.6.1
-httpx==0.27.0
-idna==3.6
-itsdangerous==2.1.2
-Jinja2==3.1.3
-MarkupSafe==2.1.5
-orjson==3.10.0
-pydantic==2.6.4
-pydantic-extra-types==2.6.0
-pydantic-settings==2.2.1
-pydantic_core==2.16.3
-python-dotenv==1.0.1
-python-multipart==0.0.9
-PyYAML==6.0.1
-sniffio==1.3.1
-SQLAlchemy==2.0.29
-starlette==0.36.3
-typing_extensions==4.10.0
-ujson==5.9.0
-uvicorn==0.29.0
-uvloop==0.19.0
-watchfiles==0.21.0
-websockets==12.0
diff --git a/microservices/reviews_service/requirements.txt b/microservices/reviews_service/requirements.txt
deleted file mode 100644
index 6c5d0fd..0000000
--- a/microservices/reviews_service/requirements.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-annotated-types==0.6.0
-anyio==4.3.0
-certifi==2024.2.2
-click==8.1.7
-dnspython==2.6.1
-email_validator==2.1.1
-exceptiongroup==1.2.0
-fastapi==0.110.0
-greenlet==3.0.3
-h11==0.14.0
-httpcore==1.0.5
-httptools==0.6.1
-httpx==0.27.0
-idna==3.6
-itsdangerous==2.1.2
-Jinja2==3.1.3
-MarkupSafe==2.1.5
-orjson==3.10.0
-pydantic==2.6.4
-pydantic-extra-types==2.6.0
-pydantic-settings==2.2.1
-pydantic_core==2.16.3
-python-dotenv==1.0.1
-python-multipart==0.0.9
-PyYAML==6.0.1
-sniffio==1.3.1
-SQLAlchemy==2.0.29
-starlette==0.36.3
-typing_extensions==4.10.0
-ujson==5.9.0
-uvicorn==0.29.0
-uvloop==0.19.0
-watchfiles==0.21.0
-websockets==12.0
diff --git a/microservices/users_service/requirements.txt b/microservices/users_service/requirements.txt
deleted file mode 100644
index 6c5d0fd..0000000
--- a/microservices/users_service/requirements.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-annotated-types==0.6.0
-anyio==4.3.0
-certifi==2024.2.2
-click==8.1.7
-dnspython==2.6.1
-email_validator==2.1.1
-exceptiongroup==1.2.0
-fastapi==0.110.0
-greenlet==3.0.3
-h11==0.14.0
-httpcore==1.0.5
-httptools==0.6.1
-httpx==0.27.0
-idna==3.6
-itsdangerous==2.1.2
-Jinja2==3.1.3
-MarkupSafe==2.1.5
-orjson==3.10.0
-pydantic==2.6.4
-pydantic-extra-types==2.6.0
-pydantic-settings==2.2.1
-pydantic_core==2.16.3
-python-dotenv==1.0.1
-python-multipart==0.0.9
-PyYAML==6.0.1
-sniffio==1.3.1
-SQLAlchemy==2.0.29
-starlette==0.36.3
-typing_extensions==4.10.0
-ujson==5.9.0
-uvicorn==0.29.0
-uvloop==0.19.0
-watchfiles==0.21.0
-websockets==12.0
diff --git a/microservices/rentals_service/DockerFIle b/rentals_service/Dockerfile
similarity index 87%
rename from microservices/rentals_service/DockerFIle
rename to rentals_service/Dockerfile
index 4314cb6..69b18e1 100644
--- a/microservices/rentals_service/DockerFIle
+++ b/rentals_service/Dockerfile
@@ -13,5 +13,8 @@ RUN pip install --no-cache-dir -r requirements.txt
 # Copy the rest of the application code to the working directory
 COPY . .
 
+# Expose the port specified by the environment variable
+EXPOSE 8003
+
 # Command to run the application
 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8003"]
diff --git a/microservices/rentals_service/main.py b/rentals_service/main.py
similarity index 100%
rename from microservices/rentals_service/main.py
rename to rentals_service/main.py
diff --git a/microservices/users_service/DockerFIle b/reviews_service/Dockerfile
similarity index 72%
rename from microservices/users_service/DockerFIle
rename to reviews_service/Dockerfile
index 0ec1be9..67ca58e 100644
--- a/microservices/users_service/DockerFIle
+++ b/reviews_service/Dockerfile
@@ -13,7 +13,8 @@ RUN pip install --no-cache-dir -r requirements.txt
 # Copy the rest of the application code to the working directory
 COPY . .
 
-EXPOSE 8005
+# Expose the port specified by the environment variable
+EXPOSE $SERVICE_PORT
 
 # Command to run the application
-CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8005"]
+CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "$SERVICE_PORT"]
diff --git a/microservices/reviews_service/main.py b/reviews_service/main.py
similarity index 98%
rename from microservices/reviews_service/main.py
rename to reviews_service/main.py
index 8a5d39e..ce085ac 100644
--- a/microservices/reviews_service/main.py
+++ b/reviews_service/main.py
@@ -28,7 +28,7 @@ cursor = conn.cursor()
 # Create the Reviews table if it doesn't exist
 cursor.execute('''
     CREATE TABLE IF NOT EXISTS Reviews (
-        review_id INTEGER PRIMARY KEY,
+        review_id INTEGER PRIMARY KEY AUTOINCREMENT,
         user_id INT,
         bike_id INT,
         rating INT,
diff --git a/microservices/reviews_service/DockerFIle b/users_service/Dockerfile
similarity index 72%
rename from microservices/reviews_service/DockerFIle
rename to users_service/Dockerfile
index b34fe12..67ca58e 100644
--- a/microservices/reviews_service/DockerFIle
+++ b/users_service/Dockerfile
@@ -13,7 +13,8 @@ RUN pip install --no-cache-dir -r requirements.txt
 # Copy the rest of the application code to the working directory
 COPY . .
 
-EXPOSE 8004
+# Expose the port specified by the environment variable
+EXPOSE $SERVICE_PORT
 
 # Command to run the application
-CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8004"]
+CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "$SERVICE_PORT"]
diff --git a/microservices/users_service/main.py b/users_service/main.py
similarity index 100%
rename from microservices/users_service/main.py
rename to users_service/main.py
-- 
GitLab