33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from fastapi import APIRouter, Depends, File, UploadFile
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.core.database import get_db
|
|
from app.core.security import get_current_user
|
|
from app.models.uploaded_image import UploadedImage
|
|
from app.models.user import User
|
|
from app.schemas.upload import UploadResponse
|
|
from app.services.image_service import ImageService
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/palm", response_model=UploadResponse)
|
|
async def upload_palm_image(
|
|
file: UploadFile = File(...),
|
|
user: User = Depends(get_current_user),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
storage_key, size_bytes, expires_at, quality_check = await ImageService().validate_and_store(file, user.id)
|
|
image = UploadedImage(
|
|
user_id=user.id,
|
|
storage_key=storage_key,
|
|
original_filename=file.filename or "palm",
|
|
content_type=file.content_type or "application/octet-stream",
|
|
size_bytes=size_bytes,
|
|
expires_at=expires_at,
|
|
)
|
|
db.add(image)
|
|
await db.flush()
|
|
await db.refresh(image)
|
|
return UploadResponse(image_id=image.id, expires_at=image.expires_at, quality_check=quality_check)
|