42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends
|
|
|
|
from backend.app.api.schemas import DeleteRequest, DeleteResponse, MkdirRequest, MkdirResponse, RenameRequest, RenameResponse, ViewResponse
|
|
from backend.app.dependencies import get_file_ops_service
|
|
from backend.app.services.file_ops_service import FileOpsService
|
|
|
|
router = APIRouter(prefix="/files")
|
|
|
|
|
|
@router.post("/mkdir", response_model=MkdirResponse)
|
|
async def mkdir(
|
|
request: MkdirRequest,
|
|
service: FileOpsService = Depends(get_file_ops_service),
|
|
) -> MkdirResponse:
|
|
return service.mkdir(parent_path=request.parent_path, name=request.name)
|
|
|
|
|
|
@router.post("/rename", response_model=RenameResponse)
|
|
async def rename(
|
|
request: RenameRequest,
|
|
service: FileOpsService = Depends(get_file_ops_service),
|
|
) -> RenameResponse:
|
|
return service.rename(path=request.path, new_name=request.new_name)
|
|
|
|
|
|
@router.post("/delete", response_model=DeleteResponse)
|
|
async def delete(
|
|
request: DeleteRequest,
|
|
service: FileOpsService = Depends(get_file_ops_service),
|
|
) -> DeleteResponse:
|
|
return service.delete(path=request.path)
|
|
|
|
|
|
@router.get("/view", response_model=ViewResponse)
|
|
async def view(
|
|
path: str,
|
|
service: FileOpsService = Depends(get_file_ops_service),
|
|
) -> ViewResponse:
|
|
return service.view(path=path)
|