From 842597aa336b302b79bf7746633d4581801b6d41 Mon Sep 17 00:00:00 2001 From: Navin Chandra <nc01009@surrey.ac.uk> Date: Tue, 7 May 2024 19:05:22 +0530 Subject: [PATCH] code clean up --- Makefile | 11 +++ clItest.py | 16 ---- poc/__pycache__/main.cpython-39.pyc | Bin 3707 -> 0 bytes poc/main.py | 119 ---------------------------- 4 files changed, 11 insertions(+), 135 deletions(-) create mode 100644 Makefile delete mode 100644 clItest.py delete mode 100644 poc/__pycache__/main.cpython-39.pyc delete mode 100644 poc/main.py diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..56affe8 --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +# List of microservices and their respective ports +SERVICES = admins_service bikes_service rentals_service reviews_service users_service +PORTS = 8001 8002 8003 8004 8005 + +# Build all microservices +build: + @$(foreach service,$(SERVICES),docker build -t $(service) --build-arg SERVICE_PORT=$(word $(words $(subst _, ,$(service))),$(PORTS)) --file $(service)/Dockerfile . && true) + +# Clean up images +clean: + @$(foreach service,$(SERVICES),docker rmi -f $(service) && true) diff --git a/clItest.py b/clItest.py deleted file mode 100644 index 5e12ea1..0000000 --- a/clItest.py +++ /dev/null @@ -1,16 +0,0 @@ -import requests - -url = "http://127.0.0.1:8000/users/" - -data = { - "username": "john_doe", - "password": "password123", - "email": "john@example.com", - "phone_number": "1234567890" - # Add other fields as needed -} - -response = requests.post(url, json=data) - -print(response.status_code) -print(response.json()) \ No newline at end of file diff --git a/poc/__pycache__/main.cpython-39.pyc b/poc/__pycache__/main.cpython-39.pyc deleted file mode 100644 index 952f55b0c01a03e18015d6ff1111086f75b5f698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3707 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 ALjV8( diff --git a/poc/main.py b/poc/main.py deleted file mode 100644 index 1c6fb74..0000000 --- a/poc/main.py +++ /dev/null @@ -1,119 +0,0 @@ -from enum import Enum - -from pydantic import BaseModel - -from fastapi import FastAPI, HTTPException, Path, Query -from typing import Union - -app = FastAPI() - - -class Category(Enum): - TOOLS = "tools" - CONSUMABLES = "consumables" - - -class Item(BaseModel): - name: str - price: float - count: int - id: int - category: Category - - -items = { - 0: Item(name="Hammer", price=9.99, count=20, id=0, category=Category.TOOLS), - 1: Item(name="Pliers", price=5.99, count=20, id=1, category=Category.TOOLS), - 2: Item(name="Nails", price=1.99, count=100, id=2, category=Category.CONSUMABLES), -} - - -@app.get("/") -def index() -> dict[str, dict[int, Item]]: - return {"items": items} - - -@app.get("/items/{item_id}") -def query_item_by_id(item_id: int) -> Item: - if item_id not in items: - HTTPException(status_code=404, detail=f"Item with {item_id=} does not exist.") - - return items[item_id] - - -# Selection = dict[ -# str, str | int | float | Category | None -# ] # dictionary containing the user's query arguments -Selection = dict[str, Union[str, int, float, Category, None]] - -@app.get("/items/") -def query_item_by_parameters( - name: Union[str, None] = None, - price: Union[float, None] = None, - count: Union[int, None] = None, - category: Union[Category, None] = None, -) -> dict[str, Union[Selection, list[Item]]]: - def check_item(item: Item): - """Check if the item matches the query arguments from the outer scope.""" - return all( - ( - name is None or item.name == name, - price is None or item.price == price, - count is None or item.count != count, - category is None or item.category is category, - ) - ) - - selection = [item for item in items.values() if check_item(item)] - return { - "query": {"name": name, "price": price, "count": count, "category": category}, - "selection": selection, - } - - -@app.post("/") -def add_item(item: Item) -> dict[str, Item]: - if item.id in items: - HTTPException(status_code=400, detail=f"Item with {item.id=} already exists.") - - items[item.id] = item - return {"added": item} - - -# We can place further restrictions on allowed arguments by using the Query and Path classes. -# In this case we are setting a lower bound for valid values and a minimal and maximal length for the name. -@app.put("/update/{item_id}") -def update( - item_id: int = Path(ge=0), - name: Union[str , None] = Query(defaut=None, min_length=1, max_length=8), - price: Union[float, None] = Query(default=None, gt=0.0), - count: Union[int, None] = Query(default=None, ge=0), -): - if item_id not in items: - HTTPException(status_code=404, detail=f"Item with {item_id=} does not exist.") - if all(info is None for info in (name, price, count)): - raise HTTPException( - status_code=400, detail="No parameters provided for update." - ) - - item = items[item_id] - if name is not None: - item.name = name - if price is not None: - item.price = price - if count is not None: - item.count = count - - return {"updated": item} - - -@app.delete("/delete/{item_id}") -def delete_item(item_id: int) -> dict[str, Item]: - - if item_id not in items: - raise HTTPException( - status_code=404, detail=f"Item with {item_id=} does not exist." - ) - - item = items.pop(item_id) - return {"deleted": item} \ No newline at end of file -- GitLab