Sami Marreed
feat: docker-v1 with optimized frontend
0646b18
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session
from crm_api.database import get_db
from crm_api.schemas import LeadCreate, LeadUpdate, LeadResponse, PaginatedResponse
from crm_api.crud import lead_crud
router = APIRouter(prefix="/leads", tags=["leads"])
@router.post("/", response_model=LeadResponse)
def create_lead(lead: LeadCreate, db: Session = Depends(get_db)):
return lead_crud.create(db, lead)
@router.get("/", response_model=PaginatedResponse[LeadResponse])
def get_leads(
skip: int = Query(0, ge=0), limit: int = Query(20, ge=1, le=100), db: Session = Depends(get_db)
):
return lead_crud.get_paginated(db, skip=skip, limit=limit)
@router.get("/{lead_id}", response_model=LeadResponse)
def get_lead(lead_id: int, db: Session = Depends(get_db)):
lead = lead_crud.get(db, lead_id)
if not lead:
raise HTTPException(status_code=404, detail="Lead not found")
return lead
@router.put("/{lead_id}", response_model=LeadResponse)
def update_lead(lead_id: int, lead: LeadUpdate, db: Session = Depends(get_db)):
return lead_crud.update(db, lead_id, lead)
@router.delete("/{lead_id}")
def delete_lead(lead_id: int, db: Session = Depends(get_db)):
return lead_crud.delete(db, lead_id)