From f48ac1b6f0dcb6e6f20fb8e7c0400e291d652bc3 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 1 Feb 2016 09:45:15 +1100 Subject: [PATCH 1/3] remove redundant method --- app/Http/Controllers/InvoiceApiController.php | 27 +------------------ 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/app/Http/Controllers/InvoiceApiController.php b/app/Http/Controllers/InvoiceApiController.php index fdace861b768..5789388c18c4 100644 --- a/app/Http/Controllers/InvoiceApiController.php +++ b/app/Http/Controllers/InvoiceApiController.php @@ -249,7 +249,7 @@ class InvoiceApiController extends BaseAPIController return $item; } - public function emailInvoicev2() + public function emailInvoice() { $data = Input::all(); $error = null; @@ -269,31 +269,6 @@ class InvoiceApiController extends BaseAPIController return Response::make($response, $error ? 400 : 200, $headers); } - public function emailInvoice() - { - $data = Input::all(); - $error = null; - - if (!isset($data['id'])) { - $error = trans('validation.required', ['attribute' => 'id']); - } else { - $invoice = Invoice::scope($data['id'])->first(); - if (!$invoice) { - $error = trans('validation.not_in', ['attribute' => 'id']); - } else { - $this->mailer->sendInvoice($invoice); - } - } - - if ($error) { - $response = json_encode($error, JSON_PRETTY_PRINT); - } else { - $response = json_encode(RESULT_SUCCESS, JSON_PRETTY_PRINT); - } - - $headers = Utils::getApiHeaders(); - return Response::make($response, $error ? 400 : 200, $headers); - } /** * @SWG\Put( From 31b026d08f9cc8967bf31f7795a27a89842b2b73 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 1 Feb 2016 13:32:12 +1100 Subject: [PATCH 2/3] Added Archive Product via API --- app/Http/Controllers/ProductApiController.php | 23 +++++++++++++++---- app/Ninja/Transformers/ProductTransformer.php | 1 + 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index 7aef42393b8d..87bf89403b8a 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -1,5 +1,6 @@ productService = $productService; + $this->productRepo = $productRepo; } public function index() @@ -52,14 +56,25 @@ class ProductApiController extends BaseAPIController return $this->save(); } - public function update($publicId) + public function update(\Illuminate\Http\Request $request, $publicId) { - return $this->save($publicId); + + if ($request->action == ACTION_ARCHIVE) { + $product = Product::scope($publicId)->withTrashed()->firstOrFail(); + $this->productRepo->archive($product); + + $transformer = new ProductTransformer(\Auth::user()->account, Input::get('serializer')); + $data = $this->createItem($product, $transformer, 'products'); + + return $this->response($data); + } + else + return $this->save($publicId); } public function destroy($publicId) { - //stub + //stub } private function save($productPublicId = false) diff --git a/app/Ninja/Transformers/ProductTransformer.php b/app/Ninja/Transformers/ProductTransformer.php index 76bf436066aa..34fbcf7f18ff 100644 --- a/app/Ninja/Transformers/ProductTransformer.php +++ b/app/Ninja/Transformers/ProductTransformer.php @@ -16,6 +16,7 @@ class ProductTransformer extends EntityTransformer 'account_key' =>$this->account->account_key, 'default_tax_rate_id' =>$product->default_tax_rate_id, 'updated_at' =>$this->getTimestamp($product->updated_at), + 'archived_at' => $this->getTimestamp($product->deleted_at), ]; } } \ No newline at end of file From c0545be0d480ac9292a76577c7a14ea1a63fe945 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 1 Feb 2016 14:42:05 +1100 Subject: [PATCH 3/3] update account from API --- app/Http/Controllers/AccountApiController.php | 39 +++++++++++++++++++ app/Http/Controllers/BaseAPIController.php | 11 ++++++ app/Http/routes.php | 1 + 3 files changed, 51 insertions(+) diff --git a/app/Http/Controllers/AccountApiController.php b/app/Http/Controllers/AccountApiController.php index 3517be1af9f3..3f5a01d0cc03 100644 --- a/app/Http/Controllers/AccountApiController.php +++ b/app/Http/Controllers/AccountApiController.php @@ -4,6 +4,7 @@ use Auth; use Utils; use Response; use Input; +use Validator; use Cache; use App\Models\Client; use App\Models\Account; @@ -101,4 +102,42 @@ class AccountApiController extends BaseAPIController { return $this->processLogin($request); } + + public function update(Request $request) + { + $rules = array( + 'name' => 'required', + ); + + $validator = Validator::make(Input::all(), $rules); + + if ($validator->fails()) { + $data = $validator->messages(); + return $this->errorResponse($data); + } else { + $account = Auth::user()->account; + $account->name = trim(Input::get('name')); + $account->id_number = trim(Input::get('id_number')); + $account->vat_number = trim(Input::get('vat_number')); + $account->work_email = trim(Input::get('work_email')); + $account->website = trim(Input::get('website')); + $account->work_phone = trim(Input::get('work_phone')); + $account->address1 = trim(Input::get('address1')); + $account->address2 = trim(Input::get('address2')); + $account->city = trim(Input::get('city')); + $account->state = trim(Input::get('state')); + $account->postal_code = trim(Input::get('postal_code')); + $account->country_id = Input::get('country_id') ? Input::get('country_id') : null; + $account->size_id = Input::get('size_id') ? Input::get('size_id') : null; + $account->industry_id = Input::get('industry_id') ? Input::get('industry_id') : null; + $account->email_footer = Input::get('email_footer'); + $account->save(); + + $transformer = new AccountTransformer(null, $request->serializer); + $account = $this->createItem($account, $transformer, 'account'); + + return $this->response($account); + } + + } } diff --git a/app/Http/Controllers/BaseAPIController.php b/app/Http/Controllers/BaseAPIController.php index 4d783556022e..f7ebf9b20d7e 100644 --- a/app/Http/Controllers/BaseAPIController.php +++ b/app/Http/Controllers/BaseAPIController.php @@ -107,6 +107,17 @@ class BaseAPIController extends Controller return Response::make($response, 200, $headers); } + protected function errorResponse($response) + { + $error['error'] = $response; + $error = json_encode($error, JSON_PRETTY_PRINT); + $headers = Utils::getApiHeaders(); + + return Response::make($error, 400, $headers); + + } + + protected function getIncluded() { $data = ['user']; diff --git a/app/Http/routes.php b/app/Http/routes.php index 3582c1c83936..e9e3afc81de0 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -219,6 +219,7 @@ Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function() Route::post('login', 'AccountApiController@login'); Route::get('static', 'AccountApiController@getStaticData'); Route::get('accounts', 'AccountApiController@show'); + Route::put('accounts', 'AccountApiController@update'); Route::resource('clients', 'ClientApiController'); Route::get('quotes', 'QuoteApiController@index'); Route::resource('quotes', 'QuoteApiController');