#!/bin/bash

set -euo pipefail

# Configuration
resource="tablemaker"
BASE_URL="https://glygen.ccrc.uga.edu/tablemaker/api/api/public/downloadtablefordataset"
WHITELIST="/data/projects/glygen/downloads/download_scripts/tablemaker_whitelist.txt"

# Move to resource directory
cd "/data/projects/glygen/downloads/$resource/"

# Create timestamped folder
new_dir=$(date +%Y_%m_%d)
mkdir -p "$new_dir"

# Move into the new folder for downloads
cd "$new_dir"

echo "Using whitelist: $WHITELIST"

# Read whitelist and download
while IFS= read -r ID || [[ -n "$ID" ]]; do

    # Remove carriage returns (Windows line endings)
    ID=$(echo "$ID" | tr -d '\r')

    # Trim whitespace
    ID=$(echo "$ID" | xargs)

    # Skip blank lines and comments
    [[ -z "$ID" || "$ID" =~ ^# ]] && continue

    echo "Downloading ${ID}..."

    curl --fail --silent --show-error \
        -X GET "${BASE_URL}/${ID}" \
        -H 'accept: */*' \
        -o "${ID}.csv"

    sleep 5

done < "$WHITELIST"

# Update permissions
chmod -R 775 "/data/shared/glygen/downloads/$resource/$new_dir/"

# Update symbolic link to current
cd "/data/projects/glygen/downloads/$resource/"
rm -f current
ln -s "$new_dir" current

echo "Download Complete"