#!/bin/bash

# --- Script untuk Mendapatkan Daftar Transaksi dari Firefly III ---
# Gantilah nilai berikut dengan nilai yang sesuai:
# - FIREFLY_URL: URL instance Firefly III Anda
# - ACCESS_TOKEN: Token akses personal yang valid

# Contoh menjalankan:
# FIREFLY_URL="http://localhost:8080" ACCESS_TOKEN="token_anda" ./get_transactions.sh

if [[ -z \"${FIREFLY_URL}\" || -z \"${ACCESS_TOKEN}\" ]]; then
  echo \"Error: FIREFLY_URL dan ACCESS_TOKEN harus diset.\"
  echo \"Contoh penggunaan:\"
  echo \"FIREFLY_URL=\\\"http://localhost:8080\\\" ACCESS_TOKEN=\\\"token_anda\\\" ./get_transactions.sh\"
  exit 1
fi

echo \"Mengambil daftar transaksi dari Firefly III...\"
echo \"URL: $FIREFLY_URL\"
echo \"\"

# Ambil 5 transaksi terakhir
RESPONSE=$(curl -s -w \"%{http_code}\" -X GET \"${FIREFLY_URL}/api/v1/transactions\" \
  -H \"Authorization: Bearer ${ACCESS_TOKEN}\" \
  -H \"Accept: application/json\")

HTTP_CODE=\"${RESPONSE: -3}\"
JSON_RESPONSE=\"${RESPONSE%???}\"

echo \"HTTP Code: $HTTP_CODE\"
if [[ \"$HTTP_CODE\" -eq 200 ]]; then
  echo \"Daftar transaksi (5 terakhir):\"
  echo \"$JSON_RESPONSE\" | jq '.data[0:5] | .[] | {id: .id, journal_id: .attributes.transactions[0].transaction_journal_id, description: .attributes.description, date: .attributes.date}'
else
  echo \"Gagal mengambil daftar transaksi.\"
  if [[ -n \"$JSON_RESPONSE\" ]]; then
    echo \"Response: $JSON_RESPONSE\"
  fi
fi