From 725522ea21e8f91b0ca66541191ac655622f9989 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 23 Jun 2016 12:38:06 +0300 Subject: [PATCH] API changes for Zapier --- app/Http/Controllers/BaseAPIController.php | 11 +++++++++++ app/Http/Controllers/InvoiceApiController.php | 13 +++++-------- app/Ninja/Transformers/PaymentTransformer.php | 5 +++-- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/BaseAPIController.php b/app/Http/Controllers/BaseAPIController.php index 4660e9b25e4c..7f4f22164d38 100644 --- a/app/Http/Controllers/BaseAPIController.php +++ b/app/Http/Controllers/BaseAPIController.php @@ -215,4 +215,15 @@ class BaseAPIController extends Controller return $data; } + + protected function fileReponse($name, $data) + { + header('Content-Type: application/pdf'); + header('Content-Length: ' . strlen($data)); + header('Content-disposition: attachment; filename="' . $name . '"'); + header('Cache-Control: public, must-revalidate, max-age=0'); + header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); + + return $data; + } } diff --git a/app/Http/Controllers/InvoiceApiController.php b/app/Http/Controllers/InvoiceApiController.php index c508b790d4c4..d40540e16fcc 100644 --- a/app/Http/Controllers/InvoiceApiController.php +++ b/app/Http/Controllers/InvoiceApiController.php @@ -184,6 +184,10 @@ class InvoiceApiController extends BaseAPIController ->with('client', 'invoice_items', 'invitations') ->first(); + if (isset($data['download_invoice']) && boolval($data['download_invoice'])) { + return $this->fileReponse($invoice->getFileName(), $invoice->getPDFString()); + } + return $this->itemResponse($invoice); } @@ -361,14 +365,7 @@ class InvoiceApiController extends BaseAPIController public function download(InvoiceRequest $request) { $invoice = $request->entity(); - $pdfString = $invoice->getPDFString(); - header('Content-Type: application/pdf'); - header('Content-Length: ' . strlen($pdfString)); - header('Content-disposition: attachment; filename="' . $invoice->getFileName() . '"'); - header('Cache-Control: public, must-revalidate, max-age=0'); - header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); - - return $pdfString; + return $this->fileReponse($invoice->getFileName(), $invoice->getPDFString()); } } diff --git a/app/Ninja/Transformers/PaymentTransformer.php b/app/Ninja/Transformers/PaymentTransformer.php index c4e4328cb845..9f3ef3212863 100644 --- a/app/Ninja/Transformers/PaymentTransformer.php +++ b/app/Ninja/Transformers/PaymentTransformer.php @@ -29,7 +29,7 @@ class PaymentTransformer extends EntityTransformer public function __construct($account = null, $serializer = null, $invoice = null) { parent::__construct($account, $serializer); - + $this->invoice = $invoice; } @@ -57,6 +57,7 @@ class PaymentTransformer extends EntityTransformer 'is_deleted' => (bool) $payment->is_deleted, 'payment_type_id' => (int) $payment->payment_type_id, 'invoice_id' => (int) ($this->invoice ? $this->invoice->public_id : $payment->invoice->public_id), + 'invoice_number' => $this->invoice ? $this->invoice->invoice_number : $payment->invoice->invoice_number, ]); } -} \ No newline at end of file +}