avant codex
This commit is contained in:
@@ -2,13 +2,20 @@ import os
|
||||
import uuid
|
||||
from typing import List, Optional
|
||||
|
||||
from fastapi import APIRouter, Depends, File, HTTPException, Query, UploadFile, status
|
||||
from fastapi import APIRouter, Body, Depends, File, HTTPException, Query, UploadFile, status
|
||||
from pydantic import BaseModel
|
||||
from sqlmodel import Session, select
|
||||
|
||||
from app.config import UPLOAD_DIR
|
||||
from app.database import get_session
|
||||
from app.models.media import Attachment, Media
|
||||
|
||||
|
||||
class MediaPatch(BaseModel):
|
||||
entity_type: Optional[str] = None
|
||||
entity_id: Optional[int] = None
|
||||
titre: Optional[str] = None
|
||||
|
||||
router = APIRouter(tags=["media"])
|
||||
|
||||
|
||||
@@ -81,6 +88,19 @@ def create_media(m: Media, session: Session = Depends(get_session)):
|
||||
return m
|
||||
|
||||
|
||||
@router.patch("/media/{id}", response_model=Media)
|
||||
def update_media(id: int, payload: MediaPatch, session: Session = Depends(get_session)):
|
||||
m = session.get(Media, id)
|
||||
if not m:
|
||||
raise HTTPException(404, "Media introuvable")
|
||||
for k, v in payload.model_dump(exclude_none=True).items():
|
||||
setattr(m, k, v)
|
||||
session.add(m)
|
||||
session.commit()
|
||||
session.refresh(m)
|
||||
return m
|
||||
|
||||
|
||||
@router.delete("/media/{id}", status_code=status.HTTP_204_NO_CONTENT)
|
||||
def delete_media(id: int, session: Session = Depends(get_session)):
|
||||
m = session.get(Media, id)
|
||||
|
||||
Reference in New Issue
Block a user