39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import httpx
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
API_URL = os.getenv("API_URL", "http://localhost:8000")
|
|
|
|
class APIClient:
|
|
def __init__(self):
|
|
self.client = httpx.Client(base_url=API_URL)
|
|
self.token = None
|
|
|
|
def login(self, username, password):
|
|
response = self.client.post("/token", data={"username": username, "password": password})
|
|
if response.status_code == 200:
|
|
self.token = response.json()["access_token"]
|
|
self.client.headers.update({"Authorization": f"Bearer {self.token}"})
|
|
return True
|
|
return False
|
|
|
|
def get_materials(self):
|
|
response = self.client.get("/materials/")
|
|
return response.json()
|
|
|
|
def create_material(self, name, description, unit, stock_quantity, reorder_level, cost_per_unit):
|
|
data = {
|
|
"name": name,
|
|
"description": description,
|
|
"unit": unit,
|
|
"stock_quantity": stock_quantity,
|
|
"reorder_level": reorder_level,
|
|
"cost_per_unit": cost_per_unit
|
|
}
|
|
response = self.client.post("/materials/", json=data)
|
|
return response.json()
|
|
|
|
api = APIClient()
|