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")
|
@router.post("/", response_model=ProductionResponse, status_code=201)
|
||||||
async def login(username: str, password: str):
|
async def create_production(production: ProductionCreate, db: Session = Depends(get_db)):
|
||||||
return {"message": "User logged in successfully", "username": username}
|
"""
|
||||||
|
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