Files
Ballet-Production-Suite/frontend/api_client.py

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()