Files
2026-09-08 11:24:28 +05:30

46 lines
1.5 KiB
Python

from fastapi import APIRouter, Depends, UploadFile, File, Form, HTTPException
from app.db.database import get_db
from app.middleware.auth import get_current_user
from app.modules.auth.models.user_model import User
from app.modules.storage.controllers.storage_controller import StorageController
from app.modules.storage.schemas.storage_schema import (
StorageFilesResponse,
StorageUsageResponse,
)
from app.core.schemas import SuccessOut
router = APIRouter(prefix="/storage", tags=["Storage"])
@router.get("/usage", response_model=StorageUsageResponse)
def get_usage(conn=Depends(get_db), user: User = Depends(get_current_user)):
usage = StorageController.get_storage_usage(user, conn)
return {"user_id": user.id, "tenant_id": user.tenant_id, "usage": usage}
@router.post("/upload")
async def upload_file(
file: UploadFile = File(...),
folder: str = Form(""),
conn=Depends(get_db),
user: User = Depends(get_current_user),
):
return await StorageController.upload_file(user, file, folder, conn)
@router.get("/files", response_model=StorageFilesResponse)
def list_files(
limit: int = 50,
offset: int = 0,
conn=Depends(get_db),
user: User = Depends(get_current_user),
):
return StorageController.list_files(user, limit, offset, conn)
@router.delete("/files/{file_id}", response_model=SuccessOut)
def delete_file(
file_id: int, conn=Depends(get_db), user: User = Depends(get_current_user)
):
return StorageController.delete_file(user, file_id, conn)