diff --git a/src/MicroweberPackages/App/functions/api_callbacks.php b/src/MicroweberPackages/App/functions/api_callbacks.php index 0ed078b2cb8..32c25dd2f5e 100644 --- a/src/MicroweberPackages/App/functions/api_callbacks.php +++ b/src/MicroweberPackages/App/functions/api_callbacks.php @@ -141,12 +141,6 @@ return mw()->shop_manager->update_order($data); }); -api_expose_admin('shop/save_tax_item', function ($data) { - return mw()->tax_manager->save($data); -}); -api_expose_admin('shop/delete_tax_item', function ($data) { - return mw()->tax_manager->delete_by_id($data); -}); api_expose_admin('shop/export_orders', function ($data) { return mw()->order_manager->export_orders($data); diff --git a/src/MicroweberPackages/Tax/TaxManager.php b/src/MicroweberPackages/Tax/TaxManager.php index 6e7f4d4897f..da29f08dbad 100644 --- a/src/MicroweberPackages/Tax/TaxManager.php +++ b/src/MicroweberPackages/Tax/TaxManager.php @@ -11,6 +11,9 @@ namespace MicroweberPackages\Tax; +use Illuminate\Support\Facades\Validator; +use MicroweberPackages\Helper\HTMLClean; + class TaxManager { /** @var \MicroweberPackages\App\LaravelApplication */ @@ -50,6 +53,18 @@ public function save($params = array()) $params['rate'] = floatval($params['rate']); } + $rules = []; + $rules['name'] = 'required|max:500'; + $rules['type'] = 'required|max:500'; + $rules['rate'] = 'required|max:500'; + + $validator = Validator::make($params, $rules); + + if ($validator->fails()) { + $errors = $validator->messages()->toArray(); + return ['valid'=>false,'errors'=>$errors]; + } + $taxType = TaxType::where('id', $params['id'])->first(); if (!$taxType) { $taxType = new TaxType(); diff --git a/src/MicroweberPackages/Tax/TaxManagerServiceProvider.php b/src/MicroweberPackages/Tax/TaxManagerServiceProvider.php index 3c5d75e7fb8..0693a9e3e87 100644 --- a/src/MicroweberPackages/Tax/TaxManagerServiceProvider.php +++ b/src/MicroweberPackages/Tax/TaxManagerServiceProvider.php @@ -32,4 +32,10 @@ public function boot() $this->loadMigrationsFrom(__DIR__ . '/database/migrations/'); } + + public function register() + { + $this->loadRoutesFrom((__DIR__) . '/routes/api.php'); + $this->loadRoutesFrom((__DIR__) . '/routes/web.php'); + } } diff --git a/src/MicroweberPackages/Tax/routes/api.php b/src/MicroweberPackages/Tax/routes/api.php new file mode 100644 index 00000000000..91437fc3785 --- /dev/null +++ b/src/MicroweberPackages/Tax/routes/api.php @@ -0,0 +1,22 @@ +prefix('api') + ->middleware(['api', 'admin', 'xss']) + ->namespace('\MicroweberPackages\Tax\Http\Controllers\Api') + ->group(function () { + + Route::any('shop/save_tax_item', function () { + $data = request()->all(); + return mw()->tax_manager->save($data); + }); + + Route::any('shop/delete_tax_item', function () { + $data = request()->all(); + return mw()->tax_manager->delete_by_id($data); + }); + + }); diff --git a/src/MicroweberPackages/Tax/routes/web.php b/src/MicroweberPackages/Tax/routes/web.php new file mode 100644 index 00000000000..b3d9bbc7f37 --- /dev/null +++ b/src/MicroweberPackages/Tax/routes/web.php @@ -0,0 +1 @@ +