From 319a9b7d88336e058cdbe71adae22a8289e86ce6 Mon Sep 17 00:00:00 2001 From: Francisco Salazar <batpaxo@gmail.com> Date: Tue, 17 Jul 2018 14:30:34 -0500 Subject: [PATCH] validate slug, validate images, validate resources --- src/controllers/AdminProductController.php | 6 ++++-- src/requests/RequestCategory.php | 10 ++++++++-- src/requests/RequestGallery.php | 31 +++++++++++++++++++++++++++++++ src/requests/RequestProduct.php | 10 ++++++++-- src/requests/RequestResource.php | 31 +++++++++++++++++++++++++++++++ src/routes.php | 2 +- 6 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 src/requests/RequestGallery.php create mode 100644 src/requests/RequestResource.php diff --git a/src/controllers/AdminProductController.php b/src/controllers/AdminProductController.php index 6da27fa..48cf6ab 100644 --- a/src/controllers/AdminProductController.php +++ b/src/controllers/AdminProductController.php @@ -13,6 +13,8 @@ use Onestartup\ProductResource\Model\ProductResource as Product; use Onestartup\ProductResource\Model\ExtraFieldResource as Extra; use Onestartup\ProductResource\Requests\RequestProduct; +use Onestartup\ProductResource\Requests\RequestGallery; +use Onestartup\ProductResource\Requests\RequestResource; class AdminProductController extends Controller { @@ -160,7 +162,7 @@ class AdminProductController extends Controller } - public function storeGallery(Request $request, $product_id) + public function storeGallery(RequestGallery $request, $product_id) { $product = Product::find($product_id); @@ -199,7 +201,7 @@ class AdminProductController extends Controller } - public function storeResource(Request $request, $product_id) + public function storeResource(RequestResource $request, $product_id) { $product = Product::find($product_id); diff --git a/src/requests/RequestCategory.php b/src/requests/RequestCategory.php index e0acabd..f2e2168 100644 --- a/src/requests/RequestCategory.php +++ b/src/requests/RequestCategory.php @@ -23,11 +23,17 @@ class RequestCategory extends FormRequest */ public function rules() { + if ($this->get("_method") == "PUT" || $this->get("_method") == "PATCH"){ + $slug = 'required|max:255|unique:product_categories_resource,slug,'.$this->route("category"); + }else{ + $slug = 'required|max:255|unique:product_categories_resource,slug'; + } return [ 'name' => 'required|max:355', - 'slug' => 'required|max:255', + 'slug' => $slug, 'description'=> 'max:455', - 'active' => 'required' + 'active' => 'required', + 'portada' => 'image' ]; } } \ No newline at end of file diff --git a/src/requests/RequestGallery.php b/src/requests/RequestGallery.php new file mode 100644 index 0000000..9830686 --- /dev/null +++ b/src/requests/RequestGallery.php @@ -0,0 +1,31 @@ +<?php + +namespace Onestartup\ProductResource\Requests; + +use Illuminate\Foundation\Http\FormRequest; + +class RequestGallery extends FormRequest +{ + /** + * Determine if the user is authorized to make this request. + * + * @return bool + */ + public function authorize() + { + return true; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + + return [ + 'file.*' => 'image' + ]; + } +} \ No newline at end of file diff --git a/src/requests/RequestProduct.php b/src/requests/RequestProduct.php index 6ad6dc2..2f7d968 100644 --- a/src/requests/RequestProduct.php +++ b/src/requests/RequestProduct.php @@ -23,9 +23,14 @@ class RequestProduct extends FormRequest */ public function rules() { + if ($this->get("_method") == "PUT" || $this->get("_method") == "PATCH"){ + $slug = 'required|max:455|unique:products_resource,slug,'.$this->route("product"); + }else{ + $slug = 'required|max:455|unique:products_resource,slug'; + } return [ 'name' => 'required|max:355', - 'slug' => 'required|max:455', + 'slug' => $slug, 'description'=> 'required', 'active' => 'required|boolean', 'publication_date' => 'required', @@ -39,7 +44,8 @@ class RequestProduct extends FormRequest 'extra8' => 'max:455', 'extra9' => 'max:455', 'extra10' => 'max:455', - 'category_id' => 'required|numeric' + 'category_id' => 'required|numeric', + 'cover' => 'image' ]; } } \ No newline at end of file diff --git a/src/requests/RequestResource.php b/src/requests/RequestResource.php new file mode 100644 index 0000000..d798bb7 --- /dev/null +++ b/src/requests/RequestResource.php @@ -0,0 +1,31 @@ +<?php + +namespace Onestartup\ProductResource\Requests; + +use Illuminate\Foundation\Http\FormRequest; + +class RequestResource extends FormRequest +{ + /** + * Determine if the user is authorized to make this request. + * + * @return bool + */ + public function authorize() + { + return true; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + + return [ + 'file.*' => 'mimes:pdf,doc,docx,xls,xlsx,ppt,pptx' + ]; + } +} \ No newline at end of file diff --git a/src/routes.php b/src/routes.php index aeadbd9..e299a2c 100644 --- a/src/routes.php +++ b/src/routes.php @@ -9,7 +9,7 @@ Route::group(['middleware' => ['web', 'auth', 'is_admin']], function(){ Route::resource('admin/product_resources/category', 'Onestartup\ProductResource\Controller\CategoryController', ['as'=>'admin.product_resources']); - Route::delete('delete/cover/category/product/{id}', 'Onestartup\ProductResource\Controller\CategoryController@deleteCover') + Route::delete('delete/cover/category/product_resource/{id}', 'Onestartup\ProductResource\Controller\CategoryController@deleteCover') ->name('delete.cover.category.product_resources'); Route::get('admin/product_resources/datatable', 'Onestartup\ProductResource\Controller\AdminProductController@getProducts') -- libgit2 0.26.0