Edit File: StoreProductController.php
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Http\Requests\Api\StoreProduct\AddMenuRequest; use App\Http\Requests\Api\StoreProduct\AddProductsRequest; use App\Http\Requests\Api\StoreProduct\PostAdditionRequest; use App\Http\Requests\Api\StoreProduct\PostFeaturesRequest; use App\Http\Requests\Api\StoreProduct\PostGroupsRequest; use App\Http\Requests\Api\StoreProduct\postProductFeatureProperities; use App\Http\Requests\Api\StoreProduct\removeProductFeatureRequest; use App\Http\Requests\Api\StoreProduct\updateMenuRequest; use App\Http\Requests\Api\StoreProduct\UpdateProductsRequest; use App\Http\Resources\FeatureResource; use App\Http\Resources\ProductAdditiveResource; use App\Http\Resources\ProductsResource; use App\Http\Resources\PropertiesResource; use App\Http\Resources\StoreMenusCategoriesResource; use App\Http\Resources\StoreProductResource; use App\Models\Product; use App\Models\StoreMenuCategory; use App\Services\Store\MenuService; use App\Services\Store\ProductService; use App\Traits\ApiTrait; use Illuminate\Http\Request; use App\Services\Store\AddtiveService; use App\Http\Requests\Api\StoreProduct\AddAddtiveRequest; class StoreProductController extends Controller { use ApiTrait; public function controlProduct(Request $request) { $product = StoreMenuCategory::find($request['product_id']); if (! $product) { return $this->failMsg(trans('stores_dashboard.not_found')); } if ($product->available == 'true') { $product->available = 'false'; } else { $product->available = 'true'; } $product->update(); $data['available'] = $product->available == 'true' ? true : false; $msg = ($product->available == 'true') ? __('stores_dashboard.product_available') : __('stores_dashboard.product_not_available'); return $this->successReturn($msg , $data); } public function getProducts(Request $request) { $product_services = new ProductService(); $products = $product_services->getProducts($request->all()); $data['products'] = ProductsResource::collection($products); $data['pagination'] = $this->paginationModel($products); return $this->dataReturn($data); } public function getSingleProduct(Request $request) { $product_services = new ProductService(); $product = $product_services->get_single_product($request->product_id); if (isset($product['fail_msg'])) { return $this->failMsg($product['fail_msg']); } $data = new StoreProductResource($product); return $this->dataReturn($data); } public function addProduct(AddProductsRequest $request) { $product_services = new ProductService(); $product = $product_services->postProduct($request); if (isset($product['fail_msg'])) { return $this->failMsg($product['fail_msg']); } $data = new StoreProductResource($product); $msg = trans('stores_dashboard.multiple'); return $this->successReturn($msg, $data); } public function getStoreMenuCategories() { $menu_services = new MenuService(); $menus = $menu_services->get_menus(); $data = StoreMenusCategoriesResource::collection($menus); return $this->dataReturn($data); } public function addStoreMenuCategory(AddMenuRequest $request) { $menu_services = new MenuService(); $menu = $menu_services->postMenu($request->validated()); $data = new StoreMenusCategoriesResource($menu); $msg = __('dashboard.alerts.added_successfully'); return $this->successReturn($msg,$data); } public function updateProduct(UpdateProductsRequest $request) { $product_services = new ProductService(); $product = $product_services->updateProducts($request); if (isset($product['fail_msg'])) { return $this->failMsg($product['fail_msg']); } $data = new StoreProductResource($product); if ($product->type == 'multiple') { $msg = trans('stores_dashboard.multiple'); return $this->successReturn($msg, $data); } return $this->dataReturn($data); } public function editStoreMenuCategory(Request $request) { $menu_services = new MenuService(); $menu = $menu_services->get_edit_menu($request->menu_id); $data = new StoreMenusCategoriesResource($menu); return $this->dataReturn($data); } public function updateStoreMenuCategory($id) { $menu_services = new MenuService(); $menu = $menu_services->postEditMenu($id); $data = new StoreMenusCategoriesResource($menu); $msg = __('dashboard.alerts.updated_successfully'); return $this->successReturn($msg,$data); } public function getFeatures(Request $request) { $product_services = new ProductService(); $service_result = $product_services->getFeatures(); $data = FeatureResource::collection($service_result['features']); return $this->dataReturn($data); } public function postProductFeatureProperities(PostProductFeatureProperities $request) { $product_services = new ProductService(); $service_result = $product_services->postProductFeatureProperities($request->validated()); if (isset($service_result['fail_msg'])) { return $this->failMsg($service_result['fail_msg']); } $data = new StoreProductResource($service_result); $msg = __('stores_dashboard.features_added_successfully'); return $this->successReturn($msg , $data); } public function postGroups(PostGroupsRequest $request) { $product_services = new ProductService(); $service_result = $product_services->postGroups($request->validated()); if (isset($service_result['fail_msg'])) { return $this->failMsg($service_result['fail_msg']); } $data = new StoreProductResource($service_result); $msg = __('stores_dashboard.groups_added'); return $this->successReturn($msg , $data); } //delete public function deleteProduct(Request $request) { $product_services = new ProductService(); $service_result = $product_services->deleteProduct($request->product_id); if (isset($service_result['fail_msg'])) { return $this->failMsg($service_result['fail_msg']); } return $this->successMsg($service_result); } public function deleteMenuCategory(Request $request) { $product_services = new MenuService(); $service_result = $product_services->deleteMenu($request->menu_id); if (isset($service_result['failMsg'])) { return $this->failMsg($service_result['failMsg']); } return $this->successMsg($service_result); } public function getAdditive() { $service_result = (new AddtiveService())->getAdditives(); $data['addtive'] = ProductAdditiveResource::collection($service_result); return $this->dataReturn($data); } public function getEditAdditive($id){ $service_result = (new AddtiveService())->getEditAdditive($id); $data['addtive'] = new ProductAdditiveResource($service_result); return $this->dataReturn($data); } public function postAdditive(AddAddtiveRequest $request) { $service_result = (new AddtiveService())->postAdditive($request->validated()); $data['addtive'] = new ProductAdditiveResource($service_result); // return $this->dataReturn($data); $msg = __('dashboard.alerts.added_successfully'); return $this->successReturn($msg,$data); } public function postEditAdditive(AddAddtiveRequest $request , $id){ $service_result = (new AddtiveService())->postEditAdditive($request->validated() , $id); $data['addtive'] = new ProductAdditiveResource($service_result); // return $this->dataReturn($data); $msg = __('dashboard.alerts.updated_successfully'); return $this->successReturn($msg,$data); } public function deleteAdditive($id){ $service_result = (new AddtiveService())->deleteAdditive($id); return $this->successMsg($service_result); } }
Back to File Manager