Saltar al contenido principal

⚡ RUN THIS NOW - PDF Fix

Quick fix for empty PDF attachments


🎯 3 COMMANDS TO RUN

1. Run Migration (Add content column to database)

cd /Users/luisrangel/devLR/rpa/flowpos-workspace/apps/backend
pnpm run migration:run

Look for:

✅ Added content column to communicationAttachment table

2. Restart Backend

# Stop current backend (Ctrl+C)
pnpm run start:dev

Backend will restart with new code

3. Test PDF Attachment

# In another terminal:
cd /Users/luisrangel/devLR/rpa/flowpos-workspace

# Generate PDF and send
PDF_BASE64=$(curl -s -X POST 'http://localhost:4000/communications/generate-pdf' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjU0NTEzMjA5OWFkNmJmNjEzODJiNmI0Y2RlOWEyZGZlZDhjYjMwZjAiLCJ0eXAiOiJKV1QifQ.eyJkYl91c2VyX2lkIjoiNmMwYzRmMzItZDc0YS00YTg0LTg5MmYtM2JlYWQ0NDdkNzY1IiwiaXNzIjoiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGUuY29tL2JhcnRvLWRldiIsImF1ZCI6ImJhcnRvLWRldiIsImF1dGhfdGltZSI6MTc2MjM2MDg2MSwidXNlcl9pZCI6IlowS1JtNDdVQ3VPcnpxb3hpNlpRR1FnMzBJYTIiLCJzdWIiOiJaMEtSbTQ3VUN1T3J6cW94aTZaUUdRZzMwSWEyIiwiaWF0IjoxNzYyMzYwODYxLCJleHAiOjE3NjIzNjQ0NjEsImVtYWlsIjoibHVpc3JhbmdlbGNAb3V0bG9vay5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsibHVpc3JhbmdlbGNAb3V0bG9vay5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.Hq16ACY9QuBOmQ3GfI2ieijPox24FTjhavU5n8GYXvh-y6-r1mgOtifaFTV0t39XDWc4ZeDavkI2mTaX2PYdQUwOFfpbXgCg5pXBIhYW7AgMCOijIuWEKsSBRoYAN1tDuq1v3yqIem_UKbH_VoWu3XUzEHhT3G5J_2h7X873DxcmoE6W3iaf2eLm77Grwlqg3806aT5HdSFAogoI2Gc9eBuvRnG1M2d-JS9Byl5_DBUzio6HNB5wacRL8VzQtxkS14JfkjSaQ6fMAm36CFzmIFhalD6zWxbuG4F0VlCc9DIJvwmwhy3HPTMIJDfw6VDU6Rc3Fu7_3bg4ShVQEDu_Fg' \
-d '{"templateType":"invoice","templateData":{"invoiceNumber":"FIX-TEST","companyName":"RPA Solution","customerName":"Test","totalAmount":"$99.99"}}' | jq -r '.content')

curl -X POST 'http://localhost:4000/communications/send' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjU0NTEzMjA5OWFkNmJmNjEzODJiNmI0Y2RlOWEyZGZlZDhjYjMwZjAiLCJ0eXAiOiJKV1QifQ.eyJkYl91c2VyX2lkIjoiNmMwYzRmMzItZDc0YS00YTg0LTg5MmYtM2JlYWQ0NDdkNzY1IiwiaXNzIjoiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGUuY29tL2JhcnRvLWRldiIsImF1ZCI6ImJhcnRvLWRldiIsImF1dGhfdGltZSI6MTc2MjM2MDg2MSwidXNlcl9pZCI6IlowS1JtNDdVQ3VPcnpxb3hpNlpRR1FnMzBJYTIiLCJzdWIiOiJaMEtSbTQ3VUN1T3J6cW94aTZaUUdRZzMwSWEyIiwiaWF0IjoxNzYyMzYwODYxLCJleHAiOjE3NjIzNjQ0NjEsImVtYWlsIjoibHVpc3JhbmdlbGNAb3V0bG9vay5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsibHVpc3JhbmdlbGNAb3V0bG9vay5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.Hq16ACY9QuBOmQ3GfI2ieijPox24FTjhavU5n8GYXvh-y6-r1mgOtifaFTV0t39XDWc4ZeDavkI2mTaX2PYdQUwOFfpbXgCg5pXBIhYW7AgMCOijIuWEKsSBRoYAN1tDuq1v3yqIem_UKbH_VoWu3XUzEHhT3G5J_2h7X873DxcmoE6W3iaf2eLm77Grwlqg3806aT5HdSFAogoI2Gc9eBuvRnG1M2d-JS9Byl5_DBUzio6HNB5wacRL8VzQtxkS14JfkjSaQ6fMAm36CFzmIFhalD6zWxbuG4F0VlCc9DIJvwmwhy3HPTMIJDfw6VDU6Rc3Fu7_3bg4ShVQEDu_Fg' \
-d '{
"businessId": "33b6db4b-51c5-45ee-8d04-c01c2d157f66",
"createdBy": "6c0c4f32-d74a-4a84-892f-3bead447d765",
"recipientContact": "luisrangelc@gmail.com",
"channel": "email",
"type": "invoice",
"subject": "FINAL FIX TEST - PDF!",
"content": "<p>PDF should work now!</p>",
"attachments": [{
"filename": "invoice-fix-test.pdf",
"content": "'"$PDF_BASE64"'",
"mimeType": "application/pdf"
}]
}'

4. Check Gmail

Open Gmail and look for:

  • 📧 Subject: "FINAL FIX TEST - PDF!"
  • 📎 Attachment: invoice-fix-test.pdf
  • Download and open the PDF!

SUCCESS INDICATORS

You'll know it worked when:

  1. ✅ Backend logs show "content: YES"
  2. ✅ Backend logs show "Retrieved 1 attachment(s) from database"
  3. ✅ Backend logs show "First has content: true, length: XXXXX chars"
  4. ✅ Email arrives in Gmail
  5. ✅ Attachment is ~48 KB (not 0 KB)
  6. PDF opens in viewer
  7. Invoice displays correctly!

🎊 THIS IS THE FINAL FIX!

After this, PDF attachments will work 100%! 🚀

Run the migration now!

cd apps/backend && pnpm run migration:run