78 lines
3.3 KiB
Bash
Executable File
78 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# --- Placeholder for User Execution ---
|
|
# Anda perlu mengganti placeholder berikut dengan nilai sebenarnya:
|
|
# - YOUR_FIREFLY_III_URL: URL instance Firefly III Anda (contoh: https://firefly.yourdomain.com)
|
|
# - YOUR_ACCESS_TOKEN: Token akses personal Anda dari Firefly III
|
|
# - SOURCE_ACCOUNT_ID: ID akun sumber (dapat ditemukan dengan get_accounts.sh)
|
|
# - DESTINATION_ACCOUNT_ID: ID akun tujuan (dapat ditemukan dengan get_accounts.sh)
|
|
# - TRANSACTION_TYPE: (Opsional) Jenis transaksi. Default: 'deposit'. Nilai: 'withdrawal', 'deposit', 'transfer'.
|
|
|
|
# Contoh menjalankan script:
|
|
# YOUR_FIREFLY_III_URL="https://firefly.yourdomain.com" YOUR_ACCESS_TOKEN="your_actual_token_here" SOURCE_ACCOUNT_ID=1 DESTINATION_ACCOUNT_ID=2 ./submit_dummy_transaction.sh
|
|
# YOUR_FIREFLY_III_URL="https://firefly.yourdomain.com" YOUR_ACCESS_TOKEN="your_actual_token_here" SOURCE_ACCOUNT_ID=1 DESTINATION_ACCOUNT_ID=2 TRANSACTION_TYPE="transfer" ./submit_dummy_transaction.sh
|
|
|
|
# Cek apakah variabel lingkungan wajib diset
|
|
if [[ -z "${YOUR_FIREFLY_III_URL}" || -z "${YOUR_ACCESS_TOKEN}" || -z "${SOURCE_ACCOUNT_ID}" || -z "${DESTINATION_ACCOUNT_ID}" ]]; then
|
|
echo "Error: Variabel lingkungan 'YOUR_FIREFLY_III_URL', 'YOUR_ACCESS_TOKEN', 'SOURCE_ACCOUNT_ID', dan 'DESTINATION_ACCOUNT_ID' harus diset."
|
|
echo "Contoh penggunaan:"
|
|
echo "YOUR_FIREFLY_III_URL=\"https://firefly.yourdomain.com\" YOUR_ACCESS_TOKEN=\"your_actual_token_here\" SOURCE_ACCOUNT_ID=1 DESTINATION_ACCOUNT_ID=2 ./submit_dummy_transaction.sh"
|
|
exit 1
|
|
fi
|
|
|
|
# Set default transaction type if not provided
|
|
if [[ -z "${TRANSACTION_TYPE}" ]]; then
|
|
TRANSACTION_TYPE="deposit"
|
|
fi
|
|
|
|
# --- Data Transaksi Dummy ---
|
|
# Anda bisa mengubah nilai-nilai ini sesuai kebutuhan untuk pengujian.
|
|
DUMMY_DATE="2025-08-19"
|
|
DUMMY_AMOUNT="50.00"
|
|
DUMMY_DESCRIPTION="Pengeluaran Dummy via Script"
|
|
|
|
# --- Perintah Curl ---
|
|
echo "=== Mengirim Transaksi Dummy ==="
|
|
echo "Data yang dikirim:"
|
|
echo " Type: ${TRANSACTION_TYPE}"
|
|
echo " Date: ${DUMMY_DATE}"
|
|
echo " Amount: ${DUMMY_AMOUNT}"
|
|
echo " Description: ${DUMMY_DESCRIPTION}"
|
|
echo " Source ID: ${SOURCE_ACCOUNT_ID}"
|
|
echo " Destination ID: ${DESTINATION_ACCOUNT_ID}"
|
|
echo " URL: ${YOUR_FIREFLY_III_URL}"
|
|
echo ""
|
|
|
|
# Membangun payload JSON secara langsung dalam perintah curl
|
|
RESPONSE=$(curl -s -w "%{http_code}" -X POST "${YOUR_FIREFLY_III_URL}/api/v1/transactions" \
|
|
-H "Authorization: Bearer ${YOUR_ACCESS_TOKEN}" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Accept: application/json" \
|
|
-d "{
|
|
\"transactions\": [
|
|
{
|
|
\"type\": \"${TRANSACTION_TYPE}\",
|
|
\"date\": \"${DUMMY_DATE}\",
|
|
\"amount\": \"${DUMMY_AMOUNT}\",
|
|
\"description\": \"${DUMMY_DESCRIPTION}\",
|
|
\"source_id\": ${SOURCE_ACCOUNT_ID},
|
|
\"destination_id\": ${DESTINATION_ACCOUNT_ID}
|
|
}
|
|
]
|
|
}")
|
|
|
|
HTTP_CODE="${RESPONSE: -3}" # Ambil 3 karakter terakhir sebagai HTTP code
|
|
JSON_RESPONSE="${RESPONSE%???}" # Ambil semua karakter kecuali 3 terakhir
|
|
|
|
echo "Response HTTP Code: ${HTTP_CODE}"
|
|
if [[ "${HTTP_CODE}" -eq 200 ]] || [[ "${HTTP_CODE}" -eq 201 ]]; then
|
|
echo "Transaksi berhasil dikirim!"
|
|
echo "Response JSON:"
|
|
echo "${JSON_RESPONSE}" | jq '.' # Format output jika jq tersedia
|
|
else
|
|
echo "Gagal mengirim transaksi. HTTP Code: ${HTTP_CODE}"
|
|
if [[ -n "${JSON_RESPONSE}" ]]; then
|
|
echo "Response JSON:"
|
|
echo "${JSON_RESPONSE}" | jq '.'
|
|
fi
|
|
fi |