mirror of
http://88.130.71.182:3000/BlitTech/deals24togo_be.git
synced 2026-06-12 23:33:21 +00:00
Initial commit
This commit is contained in:
53
app/api/v1/endpoints/uploads.py
Normal file
53
app/api/v1/endpoints/uploads.py
Normal file
@@ -0,0 +1,53 @@
|
||||
"""File upload endpoints."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import APIRouter, Depends, File, UploadFile
|
||||
|
||||
from app.middleware.auth import get_current_user
|
||||
from app.services.upload_service import UploadService
|
||||
|
||||
router = APIRouter(prefix="/uploads", tags=["Uploads"])
|
||||
|
||||
|
||||
@router.post("/image")
|
||||
async def upload_image(
|
||||
file: UploadFile = File(...),
|
||||
user: dict = Depends(get_current_user),
|
||||
):
|
||||
"""Upload an image and return its public URL."""
|
||||
contents = await file.read()
|
||||
svc = UploadService()
|
||||
url = svc.upload_image(
|
||||
file_bytes=contents,
|
||||
content_type=file.content_type or "image/jpeg",
|
||||
folder=f"users/{user['id']}",
|
||||
)
|
||||
return {"url": url}
|
||||
|
||||
|
||||
@router.post("/images")
|
||||
async def upload_multiple_images(
|
||||
files: list[UploadFile] = File(...),
|
||||
user: dict = Depends(get_current_user),
|
||||
):
|
||||
"""Upload multiple images and return their public URLs."""
|
||||
svc = UploadService()
|
||||
urls = []
|
||||
for f in files:
|
||||
contents = await f.read()
|
||||
url = svc.upload_image(
|
||||
file_bytes=contents,
|
||||
content_type=f.content_type or "image/jpeg",
|
||||
folder=f"users/{user['id']}",
|
||||
)
|
||||
urls.append(url)
|
||||
return {"urls": urls}
|
||||
|
||||
|
||||
@router.delete("/")
|
||||
async def delete_image(url: str, user: dict = Depends(get_current_user)):
|
||||
"""Delete an image by URL."""
|
||||
svc = UploadService()
|
||||
success = svc.delete_image(url)
|
||||
return {"deleted": success}
|
||||
Reference in New Issue
Block a user