From 020e4286772a236511effdee271841a4a9dd39fe Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 29 Jan 2016 12:47:35 +1100 Subject: [PATCH 01/10] testing email functionality: --- app/Http/Controllers/InvoiceApiController.php | 20 +++++++++++++++++++ app/Http/Middleware/VerifyCsrfToken.php | 1 + app/Http/routes.php | 1 + 3 files changed, 22 insertions(+) diff --git a/app/Http/Controllers/InvoiceApiController.php b/app/Http/Controllers/InvoiceApiController.php index 1304c4226654..fdace861b768 100644 --- a/app/Http/Controllers/InvoiceApiController.php +++ b/app/Http/Controllers/InvoiceApiController.php @@ -249,6 +249,26 @@ class InvoiceApiController extends BaseAPIController return $item; } + public function emailInvoicev2() + { + $data = Input::all(); + $error = null; + + $invoice = Invoice::scope($data['id'])->firstOrFail(); + + $this->mailer->sendInvoice($invoice); + + if($error) { + $response['error'] = "There was an error sending the invoice"; + } + else { + $response = json_encode(RESULT_SUCCESS, JSON_PRETTY_PRINT); + } + + $headers = Utils::getApiHeaders(); + return Response::make($response, $error ? 400 : 200, $headers); + } + public function emailInvoice() { $data = Input::all(); diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index b0f44b79a076..15eeb65c7a8a 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -7,6 +7,7 @@ class VerifyCsrfToken extends BaseVerifier { private $openRoutes = [ 'signup/register', + 'api/v1/*', 'api/v1/login', 'api/v1/clients/*', 'api/v1/clients', diff --git a/app/Http/routes.php b/app/Http/routes.php index 5d3748153a57..f94867b42ea1 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -230,6 +230,7 @@ Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function() Route::resource('tasks', 'TaskApiController'); Route::post('hooks', 'IntegrationController@subscribe'); Route::post('email_invoice', 'InvoiceApiController@emailInvoice'); + Route::post('email_invoicev2', 'InvoiceApiController@emailInvoicev2'); Route::get('user_accounts','AccountApiController@getUserAccounts'); // Vendor From cc40f51f842c8da7ac2f038b0b1f518e0fa83ba3 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 20:56:27 +1100 Subject: [PATCH 02/10] working on product API --- app/Http/Controllers/ProductApiController.php | 83 +++++++++++++++++++ app/Http/routes.php | 1 + 2 files changed, 84 insertions(+) create mode 100644 app/Http/Controllers/ProductApiController.php diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php new file mode 100644 index 000000000000..0e6e25c31806 --- /dev/null +++ b/app/Http/Controllers/ProductApiController.php @@ -0,0 +1,83 @@ +productService = $productService; + } + + public function index() + { + //stub + } + + public function getDatatable() + { + return $this->productService->getDatatable(Auth::user()->account_id); + } + + public function edit($publicId) + { + //stub + } + + + public function store() + { + return $this->save(); + } + + public function update($publicId) + { + return $this->save($publicId); + } + + public function destroy() + { + //stub + } + + private function save($productPublicId = false) + { + if ($productPublicId) { + $product = Product::scope($productPublicId)->firstOrFail(); + } else { + $product = Product::createNew(); + } + + $product->product_key = trim(Input::get('product_key')); + $product->notes = trim(Input::get('notes')); + $product->cost = trim(Input::get('cost')); + //$product->default_tax_rate_id = Input::get('default_tax_rate_id'); + + $product->save(); + + $transformer = new InvoiceTransformer(\Auth::user()->account, Input::get('serializer')); + $data = $this->createItem($product, $transformer, 'products'); + + return $this->response($data); + + } + + +} diff --git a/app/Http/routes.php b/app/Http/routes.php index f94867b42ea1..3582c1c83936 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -232,6 +232,7 @@ Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function() Route::post('email_invoice', 'InvoiceApiController@emailInvoice'); Route::post('email_invoicev2', 'InvoiceApiController@emailInvoicev2'); Route::get('user_accounts','AccountApiController@getUserAccounts'); + Route::resource('products', 'ProductApiController'); // Vendor Route::resource('vendors', 'VendorApiController'); From 1da8f6bc26710707230855e212df63fb0e109d14 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 20:57:47 +1100 Subject: [PATCH 03/10] bug fixes --- app/Http/Controllers/ProductApiController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index 0e6e25c31806..dd3fb214c435 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -1,5 +1,6 @@ save(); - $transformer = new InvoiceTransformer(\Auth::user()->account, Input::get('serializer')); + $transformer = new ProductTransformer(\Auth::user()->account, Input::get('serializer')); $data = $this->createItem($product, $transformer, 'products'); return $this->response($data); From 1e8a4c2b70d6cfdd590b8c97fe6ff8856bcadaf7 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 21:51:52 +1100 Subject: [PATCH 04/10] Working on products api --- app/Http/Controllers/ProductApiController.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index dd3fb214c435..e487ceec0978 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -29,7 +29,14 @@ class ProductApiController extends BaseAPIController public function index() { - //stub + $products = Product::scope()->withTrashed(); + $products = $products->orderBy('created_at', 'desc')->paginate(); + + $transformer = new ProductTransformer(\Auth::user()->account, $this->serializer); + $data = $this->includeCollection($products, $transformer, 'products', $products->paginate()); + + return $this->response($data); + } public function getDatatable() From 1f36e175dd8bf8ba17d1d7efaeaaead65e3abfbb Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 22:16:25 +1100 Subject: [PATCH 05/10] Working on products api --- app/Http/Controllers/ProductApiController.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index e487ceec0978..d338bdbc8244 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -29,11 +29,12 @@ class ProductApiController extends BaseAPIController public function index() { - $products = Product::scope()->withTrashed(); - $products = $products->orderBy('created_at', 'desc')->paginate(); + //$products = Product::scope()->withTrashed()->orderBy('created_at', 'desc')->paginate(); + //$products = $products + $products = Product::scope()->withTrashed()->paginate(); $transformer = new ProductTransformer(\Auth::user()->account, $this->serializer); - $data = $this->includeCollection($products, $transformer, 'products', $products->paginate()); + $data = $this->includeCollection($products, $transformer, 'products'); return $this->response($data); From 43c6024f0f275bbf2c0210d6f24b55992eb9d66b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 22:17:10 +1100 Subject: [PATCH 06/10] Working on products api --- app/Http/Controllers/ProductApiController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index d338bdbc8244..5401ce4a641c 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -34,7 +34,7 @@ class ProductApiController extends BaseAPIController $products = Product::scope()->withTrashed()->paginate(); $transformer = new ProductTransformer(\Auth::user()->account, $this->serializer); - $data = $this->includeCollection($products, $transformer, 'products'); + $data = $this->createCollection($products, $transformer, 'products'); return $this->response($data); From 32ed23cde768b0f625ae8209d3754b808ad08452 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 22:18:30 +1100 Subject: [PATCH 07/10] Working on products api --- app/Http/Controllers/ProductApiController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index 5401ce4a641c..77ed746ee02b 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -32,9 +32,9 @@ class ProductApiController extends BaseAPIController //$products = Product::scope()->withTrashed()->orderBy('created_at', 'desc')->paginate(); //$products = $products - $products = Product::scope()->withTrashed()->paginate(); + $products = Product::scope()->withTrashed(); $transformer = new ProductTransformer(\Auth::user()->account, $this->serializer); - $data = $this->createCollection($products, $transformer, 'products'); + $data = $this->createCollection($products, $transformer, 'products', $products->paginate()); return $this->response($data); From b93cd84052f1d5c5277cc8de8b2b45c6ea6c3f96 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 22:20:09 +1100 Subject: [PATCH 08/10] Working on products api --- app/Http/Controllers/ProductApiController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index 77ed746ee02b..d6aa7b233031 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -33,8 +33,10 @@ class ProductApiController extends BaseAPIController //$products = $products $products = Product::scope()->withTrashed(); + $paginator = Product::scope()->withTrashed()->paginate(); + $transformer = new ProductTransformer(\Auth::user()->account, $this->serializer); - $data = $this->createCollection($products, $transformer, 'products', $products->paginate()); + $data = $this->createCollection($products, $transformer, 'products', $paginator); return $this->response($data); From 63894e0f248a0db32ad44fa4bbf2abfcc40f2672 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 22:27:26 +1100 Subject: [PATCH 09/10] Working on products api --- app/Http/Controllers/ProductApiController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index d6aa7b233031..02e03338a5de 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -33,6 +33,8 @@ class ProductApiController extends BaseAPIController //$products = $products $products = Product::scope()->withTrashed(); + $products = $products->paginate(); + $paginator = Product::scope()->withTrashed()->paginate(); $transformer = new ProductTransformer(\Auth::user()->account, $this->serializer); From 204748ad3390dce7091fa89e2e02162252533c80 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 30 Jan 2016 22:29:22 +1100 Subject: [PATCH 10/10] Working on products api --- app/Http/Controllers/ProductApiController.php | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index 02e03338a5de..7aef42393b8d 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -29,8 +29,6 @@ class ProductApiController extends BaseAPIController public function index() { - //$products = Product::scope()->withTrashed()->orderBy('created_at', 'desc')->paginate(); - //$products = $products $products = Product::scope()->withTrashed(); $products = $products->paginate(); @@ -49,12 +47,6 @@ class ProductApiController extends BaseAPIController return $this->productService->getDatatable(Auth::user()->account_id); } - public function edit($publicId) - { - //stub - } - - public function store() { return $this->save(); @@ -65,7 +57,7 @@ class ProductApiController extends BaseAPIController return $this->save($publicId); } - public function destroy() + public function destroy($publicId) { //stub }