46 lines
1.5 KiB
Python
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)
|