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)