cloud_server.routers

Routers for the FastAPI server.

class cloud_server.routers.FilesRouter(prefix)[source]

Router for the cloud server file operations.

configure_router(db, storage_directory, storage_config, thumbnail_generator)[source]

Configure the router with necessary dependencies.

Return type:

None

setup_routes()[source]

Set up the API routes.

Return type:

None

async list_files(request)[source]

Get metadata for all files.

Parameters:

request (Request) – The incoming HTTP request

Return ListFilesResponse:

Files metadata response

Return type:

ListFilesResponse

async upload_file(request, file, parent_directory)[source]

Upload a file.

Parameters:
  • request (Request) – The incoming HTTP request

  • file (UploadFile) – The file to upload

  • parent_directory (str) – Parent directory path relative to storage directory

Return UploadFileResponse:

File upload response

Raises:

HTTPException – If file validation fails or storage operation fails

Return type:

UploadFileResponse

async get_file(request, file_id)[source]

Get a file by its ID.

Parameters:
  • request (Request) – The incoming HTTP request

  • file_id (int) – The ID of the file to retrieve

Return FileResponse:

The requested file

Raises:

HTTPException – If the file metadata doesn’t exist in the database or if the file is not found in storage

Return type:

FileResponse

async delete_file(request, file_id)[source]

Delete a file by its ID.

Parameters:
  • request (Request) – The incoming HTTP request

  • file_id (int) – The ID of the file to delete

Return DeleteFileResponse:

File deletion response

Raises:

HTTPException – If the file metadata doesn’t exist in the database or if the file is not found in storage

Return type:

DeleteFileResponse

async update_file_metadata(request, file_id, body)[source]

Update metadata for a file by its ID.

Parameters:
  • request (Request) – The incoming HTTP request

  • file_id (int) – The ID of the file to update metadata for

  • body (UpdateFileMetadataRequest) – The updated filename and parent directory

Return UpdateFileMetadataResponse:

File metadata update response

Raises:

HTTPException – If the file metadata doesn’t exist in the database or file operations fail

Return type:

UpdateFileMetadataResponse

async get_thumbnail(request, file_id)[source]

Get a thumbnail for a file by its ID.

Parameters:
  • request (Request) – The incoming HTTP request

  • file_id (int) – The ID of the file to get a thumbnail for

Return FileResponse:

The requested thumbnail image

Raises:

HTTPException – If the file metadata doesn’t exist in the database or if the file is not found in storage

Return type:

FileResponse

Modules

files_router

Cloud server router with file operations endpoints.