| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # Dados de conexão PostgreSQL (use as variáveis do seu .env)
- DB_HOST="localhost"
- DB_PORT="5432"
- DB_USER="report_db"
- DB_NAME="report_db"
- DB_PASSWORD="123456"
- API_URL="https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"
- # Formato da data para o dia anterior (YYYY-MM-DD)
- YESTERDAY_DATE=$(date -d "yesterday" '+%Y-%m-%d')
- echo "Buscando valor atual do Bitcoin (para salvar como $YESTERDAY_DATE)..."
- # Faz a requisição à API
- RESPONSE=$(curl -s "$API_URL")
- if [ -z "$RESPONSE" ]; then
- echo "Não foi possível obter resposta da API. Verifique sua conexão ou a URL."
- exit 1
- fi
- # Extrai o preço usando jq
- price=$(echo "$RESPONSE" | jq -r '.bitcoin.usd')
- if [ -z "$price" ] || [ "$price" == "null" ]; then
- echo "Não foi possível extrair o preço do Bitcoin da resposta da API."
- exit 1
- fi
- echo "Inserindo valor BTC de $price para a data $YESTERDAY_DATE no banco..."
- # Comando psql para inserir dados
- # O "ON CONFLICT (btc_value_date) DO NOTHING" garante que se a data já existir, não haverá erro de duplicidade.
- PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" <<EOF
- INSERT INTO btc_value (btc_value_value, btc_value_date)
- VALUES ('$price', '$YESTERDAY_DATE')
- ON CONFLICT (btc_value_date) DO NOTHING;
- EOF
- # Verifica o código de saída do psql
- if [ $? -eq 0 ]; then
- echo "Concluído! Valor inserido/ignorado com sucesso para a data $YESTERDAY_DATE."
- else
- echo "Erro ao inserir valor no banco de dados. Verifique os logs do PostgreSQL."
- fi
|