#!/bin/bash
source /home/insuraz1/public_html/_bildr/backup/gdrive.sh

upload_file() {
    site="$1"
    remote_folder_id="$2"
    media="/home/insuraz1/public_html/$site/bildr/media"
    tmp_folder="$media/_tmp"
    backup_folder="$media/backups"

    while read -r file_txt; do
        # Create zip file
        echo "Create zip file"
        file_zip=$(echo "$file_txt" | sed "s/\.txt/\.zip/")
        file_zip_name=$(basename "$file_zip")
        zip -r -q -0 "${file_zip}" -@ < "$file_txt"

        # Upload the file
        echo "Upload zip file"
        refresh_access_token
        status=$(curl -s -X POST \
            -H "Authorization: Bearer $ACCESS_TOKEN" \
            -F "metadata={name :'$file_zip_name', parents:['$remote_folder_id']};type=application/json;charset=UTF-8" \
            -F "file=@$file_zip;type=$(file --mime-type -b "$file_zip")" \
            "$UPLOAD_URL")
        echo "$status"
        remote_file_id=$(echo "$status" | jq -r '.id')
        
        if [[ "$remote_file_id" == "null" ]]; then
            echo "Error processing file: $file_txt"
            echo "$status"
            exit
        else
            echo "Remote file id: $remote_file_id"
        fi

        # Remove zip file
        # Uncomment the following line if you want to move files listed in the temp file
        echo "Clean up and move folders"
        rm -f "$file_zip"
        #while IFS= read -r item; do
        #    mv "$item" "$tmp_folder/"
        #done < "$file_txt"

        # Rename file to complete
        file_txt_done=$(echo "$file_txt" | sed "s/bk_/done_/")
        mv "$file_txt" "$file_txt_done"
    done < <(find "$backup_folder" -type f -name 'bk_[0-9]*.txt')
}

refresh_access_token
get_account_info

while read -r root_folder; do
    id=$(echo "$root_folder" | jq -r '.id')
    name=$(echo "$root_folder" | jq -r '.name')
    upload_file "$name" "$id"
done < <(get_remote_dirs)
