75 lines
2.1 KiB
Python
75 lines
2.1 KiB
Python
from fastapi import APIRouter, HTTPException
|
|
import logging
|
|
import db
|
|
from pydantic import BaseModel
|
|
|
|
|
|
#Logging
|
|
|
|
logging.basicConfig(
|
|
filename='api.log', # Log to a file
|
|
level=logging.DEBUG, # Log everything (DEBUG and above)
|
|
format='%(asctime)s %(levelname)s %(message)s'
|
|
)
|
|
|
|
logging.info('Application started')
|
|
try:
|
|
logging.debug('Debug info here')
|
|
except Exception as e:
|
|
logging.exception('An error occurred')
|
|
|
|
router = APIRouter(prefix="/query", tags=["query"])
|
|
|
|
@router.get("/help", status_code=200)
|
|
def get_help():
|
|
return {"name of clothes": "example"}
|
|
|
|
@router.get("/{clothe_name}/weight", status_code=206)
|
|
def get_weight(clothe_name: str):
|
|
name = clothe_name.upper()
|
|
if db.check_clothe(name) != None:
|
|
weight = db.fetch_weight(name)
|
|
return {"weight": weight}
|
|
else:
|
|
logging.error(f"Item {name} not found")
|
|
raise HTTPException(status_code=404, detail=f"Item {name} not found")
|
|
|
|
@router.get("/weight", status_code=200)
|
|
def get_luggage_weight():
|
|
weight = db.fetch_luggage_weight()
|
|
return {"weight": weight}
|
|
|
|
@router.get("/{clothe_name}/pieces",status_code=206)
|
|
def get_pieces(clothe_name: str):
|
|
name = clothe_name.upper()
|
|
if db.check_clothe(name) != None:
|
|
pieces = db.fetch_piece(name)
|
|
return {"pieces": pieces}
|
|
else:
|
|
logging.error(f"Item {name} not found")
|
|
raise HTTPException(status_code=404, detail=f"Item {name} not found")
|
|
|
|
@router.get("/pieces", status_code=200)
|
|
def get_all_pieces():
|
|
pieces = db.fetch_all_pieces()
|
|
return {"pieces": pieces}
|
|
|
|
@router.get("/clothes")
|
|
def get_clothes():
|
|
clothes = db.fetch_clothes()
|
|
return {"clothes": clothes}
|
|
|
|
@router.get("/{clothe_name}/all", status_code=102)
|
|
def get_all(clothe_name: str):
|
|
name = clothe_name.upper()
|
|
if db.check_clothe(name) != None:
|
|
weight = db.fetch_weight(name)
|
|
pieces = db.fetch_piece(name)
|
|
return{
|
|
"clothe": name,
|
|
"weight": weight,
|
|
"pieces": pieces
|
|
}
|
|
else:
|
|
logging.error(f"Item {name} not found")
|
|
raise HTTPException(status_code=404, detail=f"Item {name} not found") |