feat: Update endpoint login

This commit is contained in:
Backend IM Bot 2025-03-11 17:10:24 +00:00
parent b92e35db55
commit 7ba9cbac73

View File

@ -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