Source code for automation_file.remote.google_drive.folder_ops

"""Folder (mkdir-equivalent) operations on Google Drive."""

from __future__ import annotations

from googleapiclient.errors import HttpError

from automation_file.logging_config import file_automation_logger
from automation_file.remote.google_drive.client import driver_instance

_FOLDER_MIME = "application/vnd.google-apps.folder"


[docs] def drive_add_folder(folder_name: str) -> str | None: """Create a folder on Drive. Returns the new folder's ID or None.""" metadata = {"name": folder_name, "mimeType": _FOLDER_MIME} try: response = ( driver_instance.require_service().files().create(body=metadata, fields="id").execute() ) file_automation_logger.info("drive_add_folder: %s", folder_name) return response.get("id") except HttpError as error: file_automation_logger.error("drive_add_folder failed: %r", error) return None