def upload_with_conversion()

in genai-for-marketing/infra/aux_data/Create_GDrive_folder.py [0:0]


def upload_with_conversion(folder_id,source_file,destination_file,file_type):
  """Upload file with conversion
  Returns: ID of the file uploaded
  """
  creds, _ = google.auth.default()

  try:
    # create drive api client
    service = build("drive", "v3", credentials=creds)
    results = service.files().list(q=f"name='{destination_file}'",
        pageSize=10, fields="nextPageToken, files(id, name)",
        supportsAllDrives=True, includeItemsFromAllDrives=True).execute()

    query = "'{}' in parents".format(folder_id)
    children = service.files().list(q=query, 
                                fields='nextPageToken, files(id, name)').execute()
    #print(children['files'])
    fileCheck = next((item for item in children['files'] if item['name'] == destination_file), None)
    if len(children['files']) == 0 or fileCheck == None:

        file_metadata = {
            "name": destination_file,
            "mimeType": "application/vnd.google-apps.spreadsheet",
            "parents":[folder_id]
        }
        media = MediaFileUpload(source_file, mimetype=file_type, resumable=True)
        # pylint: disable=maybe-no-member
        file = (
            service.files()
            .create(body=file_metadata, media_body=media, fields="id")
            .execute()
        )
        print(f'File with ID: "{file.get("id")}" has been uploaded.')
        return file.get("id")
    else:
        fileData = next((item for item in children['files'] if item['name'] == destination_file), None)
        print("File already Exists:",fileData["id"])
        return fileData["id"]


  except HttpError as error:
    print(f"An error occurred: {error}")
    file = None