#!/bin/bash
# vault_grist_api.sh - Grist API wrapper using vault cache
# Now uses local vault cache for faster access

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/vault-env.sh"

GRIST_URL="https://grist.beawit.net"
GRIST_TOKEN=$(vault_grist_token)

if [ -z "$GRIST_TOKEN" ]; then
    echo "Error: Could not retrieve Grist token from vault cache"
    exit 1
fi

# Function to make Grist API calls
grist_api() {
    local method="${1:-GET}"
    local endpoint="$2"
    local payload="${3:-}"
    
    local curl_cmd="curl -sk -H 'Authorization: Bearer ${GRIST_TOKEN}' -H 'Content-Type: application/json'"
    
    if [ "$method" != "GET" ] && [ -n "$payload" ]; then
        curl_cmd="${curl_cmd} -X ${method} -d '${payload}'"
    fi
    
    eval "${curl_cmd} '${GRIST_URL}${endpoint}'"
}

# Export functions
export -f grist_api
export GRIST_URL
export GRIST_TOKEN
