feat: Update endpoint login
This commit is contained in:
parent
b92e35db55
commit
7ba9cbac73
@ -1,7 +1,67 @@
|
||||
from fastapi import APIRouter
|
||||
from typing import List
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
from database import get_db
|
||||
from models import Production
|
||||
from schemas import ProductionCreate, ProductionUpdate, ProductionResponse
|
||||
|
||||
router = APIRouter()
|
||||
router = APIRouter(
|
||||
prefix="/productions",
|
||||
tags=["productions"],
|
||||
)
|
||||
|
||||
@router.post("/login")
|
||||
async def login(username: str, password: str):
|
||||
return {"message": "User logged in successfully", "username": username}
|
||||
@router.post("/", response_model=ProductionResponse, status_code=201)
|
||||
async def create_production(production: ProductionCreate, db: Session = Depends(get_db)):
|
||||
"""
|
||||
Create a new production
|
||||
"""
|
||||
db_production = Production(**production.dict())
|
||||
db.add(db_production)
|
||||
db.commit()
|
||||
db.refresh(db_production)
|
||||
return db_production
|
||||
|
||||
@router.get("/", response_model=List[ProductionResponse])
|
||||
async def get_productions(db: Session = Depends(get_db)):
|
||||
"""
|
||||
Get all productions
|
||||
"""
|
||||
productions = db.query(Production).all()
|
||||
return productions
|
||||
|
||||
@router.get("/{production_id}", response_model=ProductionResponse)
|
||||
async def get_production(production_id: int, db: Session = Depends(get_db)):
|
||||
"""
|
||||
Get a production by ID
|
||||
"""
|
||||
production = db.query(Production).filter(Production.id == production_id).first()
|
||||
if not production:
|
||||
raise HTTPException(status_code=404, detail="Production not found")
|
||||
return production
|
||||
|
||||
@router.put("/{production_id}", response_model=ProductionResponse)
|
||||
async def update_production(production_id: int, production: ProductionUpdate, db: Session = Depends(get_db)):
|
||||
"""
|
||||
Update a production
|
||||
"""
|
||||
db_production = db.query(Production).filter(Production.id == production_id).first()
|
||||
if not db_production:
|
||||
raise HTTPException(status_code=404, detail="Production not found")
|
||||
update_data = production.dict(exclude_unset=True)
|
||||
for key, value in update_data.items():
|
||||
setattr(db_production, key, value)
|
||||
db.commit()
|
||||
db.refresh(db_production)
|
||||
return db_production
|
||||
|
||||
@router.delete("/{production_id}", status_code=204)
|
||||
async def delete_production(production_id: int, db: Session = Depends(get_db)):
|
||||
"""
|
||||
Delete a production
|
||||
"""
|
||||
db_production = db.query(Production).filter(Production.id == production_id).first()
|
||||
if not db_production:
|
||||
raise HTTPException(status_code=404, detail="Production not found")
|
||||
db.delete(db_production)
|
||||
db.commit()
|
||||
return None
|
Loading…
x
Reference in New Issue
Block a user