58 lines
2.1 KiB
Bash
Executable File
58 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# --- Script untuk Mengupload File PDF sebagai Attachment ke Firefly III ---
|
|
# Berdasarkan dokumentasi resmi, hanya file yang dikirim dalam request pertama.
|
|
# Untuk menghubungkan attachment dengan transaksi/bill, perlu update terpisah.
|
|
|
|
# Gantilah nilai berikut dengan nilai yang sesuai:
|
|
# - FIREFLY_URL: URL instance Firefly III Anda
|
|
# - ACCESS_TOKEN: Token akses personal yang valid
|
|
# - PDF_FILE_PATH: Path ke file PDF yang akan diupload
|
|
|
|
# Contoh menjalankan:
|
|
# FIREFLY_URL="http://localhost:8080" ACCESS_TOKEN="token_anda" PDF_FILE_PATH="/path/to/your/file.pdf" ./upload_attachment.sh
|
|
|
|
if [[ -z "${FIREFLY_URL}" || -z "${ACCESS_TOKEN}" || -z "${PDF_FILE_PATH}" ]]; then
|
|
echo "Error: FIREFLY_URL, ACCESS_TOKEN, dan PDF_FILE_PATH harus diset."
|
|
echo "Contoh penggunaan:"
|
|
echo "FIREFLY_URL=\"http://localhost:8080\" ACCESS_TOKEN=\"token_anda\" PDF_FILE_PATH=\"/path/to/your/file.pdf\" ./upload_attachment.sh"
|
|
exit 1
|
|
fi
|
|
|
|
# Cek apakah file PDF ada
|
|
if [[ ! -f "${PDF_FILE_PATH}" ]]; then
|
|
echo "Error: File PDF tidak ditemukan di path: ${PDF_FILE_PATH}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Mengupload attachment ke Firefly III..."
|
|
echo "URL: $FIREFLY_URL"
|
|
echo "File: $PDF_FILE_PATH"
|
|
echo ""
|
|
|
|
# Upload file sebagai attachment (tanpa menghubungkan ke transaksi/bill dulu)
|
|
RESPONSE=$(curl -s -w "%{http_code}" -X POST "${FIREFLY_URL}/api/v1/attachments" \
|
|
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
|
|
-H "Accept: application/json" \
|
|
-F "file=@${PDF_FILE_PATH}")
|
|
|
|
HTTP_CODE="${RESPONSE: -3}"
|
|
JSON_RESPONSE="${RESPONSE%???}"
|
|
|
|
echo "HTTP Code: $HTTP_CODE"
|
|
if [[ "$HTTP_CODE" -eq 200 ]] || [[ "$HTTP_CODE" -eq 201 ]]; then
|
|
echo "Attachment berhasil diupload!"
|
|
echo "Response:"
|
|
echo "$JSON_RESPONSE" | jq '.'
|
|
|
|
# Ekstrak ID attachment dari response untuk update berikutnya (jika diperlukan)
|
|
ATTACHMENT_ID=$(echo "$JSON_RESPONSE" | jq -r '.data.id')
|
|
echo ""
|
|
echo "Attachment ID: $ATTACHMENT_ID"
|
|
echo "Untuk menghubungkan attachment ini dengan transaksi/bill, gunakan script update_attachment.sh"
|
|
else
|
|
echo "Gagal mengupload attachment."
|
|
if [[ -n "$JSON_RESPONSE" ]]; then
|
|
echo "Response: $JSON_RESPONSE"
|
|
fi
|
|
fi |