from fastapi import APIRouter, Depends, HTTPException, Query from sqlalchemy.orm import Session from app.models.pin import Pin from app.models.user import User from app.schemas.pin import PinCreate, PinResponse from app.api.dependencies import get_db router = APIRouter() @router.post("/pins", response_model=PinResponse) def create_pin(pin: PinCreate, db: Session = Depends(get_db)): new_pin = Pin( pin_name=pin.pin_name, username=pin.username, x=pin.x, y=pin.y, description=pin.description, category=pin.category, public=pin.public ) db.add(new_pin) db.commit() db.refresh(new_pin) return new_pin @router.get("/pins", response_model=list[PinResponse]) def get_pins(username: str = Query(None), db: Session = Depends(get_db)): if username: pins = db.query(Pin).filter(Pin.username == username).all() else: pins = db.query(Pin).all() return pins """ @router.delete("/pins/{pin_id}/delete") def delete_pin(username: str, pin_id: int, db: Session = Depends(get_db)): user = db.query(User).filter(User.username == username).first() if not user: raise HTTPException(status_code=404, detail="User not found") pin = db.query(Pin).filter(Pin.id == pin_id).first() if not pin: raise HTTPException(status_code=404, detail="Pin not found") if pin.username != username: raise HTTPException(status_code=401, detail="This pin does not belong to you") else: db.delete(pin) db.commit() return {"message": "Pin deleted successfully", "pin_id": pin_id} """