From 6d09bda6464ad79532c2d674e1302cb1a88b51ff Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 17 Feb 2016 21:16:13 +1100 Subject: [PATCH] Working on API functionality --- app/Http/Controllers/AccountApiController.php | 1 + app/Http/Controllers/InvoiceApiController.php | 13 +++++++++++++ app/Http/Controllers/PaymentApiController.php | 4 ++-- app/Models/Account.php | 4 ++++ app/Ninja/Transformers/ExpenseTransformer.php | 4 ++++ 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/AccountApiController.php b/app/Http/Controllers/AccountApiController.php index 193cf2d7c5ef..f4619892fccc 100644 --- a/app/Http/Controllers/AccountApiController.php +++ b/app/Http/Controllers/AccountApiController.php @@ -71,6 +71,7 @@ class AccountApiController extends BaseAPIController 'invoices' => ['invoice_items', 'user', 'client', 'payments'], 'products' => [], 'tax_rates' => [], + 'expenses' => ['client', 'invoice', 'vendor'] ]; foreach ($map as $key => $values) { diff --git a/app/Http/Controllers/InvoiceApiController.php b/app/Http/Controllers/InvoiceApiController.php index 54e527385d66..73088f0c87d8 100644 --- a/app/Http/Controllers/InvoiceApiController.php +++ b/app/Http/Controllers/InvoiceApiController.php @@ -85,6 +85,19 @@ class InvoiceApiController extends BaseAPIController return $this->response($data); } + public function show($publicId) + { + + $invoice = Invoice::scope($publicId)->withTrashed()->first(); + + if(!$invoice) + return $this->errorResponse(['message'=>'Invoice does not exist!'], 404); + + $transformer = new InvoiceTransformer(\Auth::user()->account, Input::get('serializer')); + $data = $this->createItem($invoice, $transformer, 'invoice'); + + return $this->response($data); + } /** * @SWG\Post( diff --git a/app/Http/Controllers/PaymentApiController.php b/app/Http/Controllers/PaymentApiController.php index 5a0f508b98bd..7d896961de24 100644 --- a/app/Http/Controllers/PaymentApiController.php +++ b/app/Http/Controllers/PaymentApiController.php @@ -218,8 +218,8 @@ class PaymentApiController extends BaseAPIController $query->withTrashed(); }])->first(); - $transformer = new InvoiceTransformer(\Auth::user()->account, Input::get('serializer')); - $data = $this->createItem($invoice, $transformer, 'invoice'); + $transformer = new PaymentTransformer(\Auth::user()->account, Input::get('serializer')); + $data = $this->createItem($payment, $transformer, 'invoice'); return $this->response($data); } diff --git a/app/Models/Account.php b/app/Models/Account.php index 876804bf42a7..e9947119dcfb 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -164,6 +164,10 @@ class Account extends Eloquent return $this->belongsTo('App\Models\TaxRate'); } + public function expenses() + { + return $this->hasMany('App\Models\Expense','account_id','id')->withTrashed(); + } public function setIndustryIdAttribute($value) { diff --git a/app/Ninja/Transformers/ExpenseTransformer.php b/app/Ninja/Transformers/ExpenseTransformer.php index 26729f4ddb17..a6d358d15766 100644 --- a/app/Ninja/Transformers/ExpenseTransformer.php +++ b/app/Ninja/Transformers/ExpenseTransformer.php @@ -8,6 +8,7 @@ class ExpenseTransformer extends EntityTransformer { public function transform(Expense $expense) { + return [ 'id' => (int) $expense->public_id, 'private_notes' => $expense->private_notes, @@ -24,6 +25,9 @@ class ExpenseTransformer extends EntityTransformer 'exchange_rate' => (float) $expense->exchange_rate, 'invoice_currency_id' => (int) $expense->invoice_currency_id, 'is_deleted' => (bool) $expense->is_deleted, + 'client_id' => isset($expense->client->public_id) ? (int) $expense->client->public_id : null, + 'invoice_id' => isset($expense->invoice->public_id) ? (int) $expense->invoice->public_id : null, + 'vendor_id' => isset($expense->vendor->public_id) ? (int) $expense->vendor->public_id : null, ]; } } \ No newline at end of file