Edit File: StoreProductController.php
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Http\Requests\Api\StoreProduct\AddAddtiveRequest; 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\UpdateAddtiveRequest; use App\Http\Requests\Api\StoreProduct\UpdateGroupsRequest; use App\Http\Requests\Api\StoreProduct\updateMenuRequest; use App\Http\Requests\Api\StoreProduct\UpdateProductsRequest; use App\Http\Resources\AddtiveCategoriesResource; use App\Http\Resources\FeatureResource; use App\Http\Resources\FeaturesResource; use App\Http\Resources\ProductAdditiveResource; use App\Http\Resources\ProductGroupResource; 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\Services\Store\AddtiveService; use App\Services\Store\MenuService; use App\Services\Store\ProductService; use App\Traits\ApiTrait; use Illuminate\Http\Request; class StoreProductController extends Controller { use ApiTrait; public function controlProduct(Request $request) { $product = Product::find($request['product_id']); if ($product->available == 'true') { $product->available = 'false'; } else { $product->available = 'true'; } $product->update(); $data['available'] = $product->available == 'true' ? true : false; return $this->dataReturn($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->getSingleProduct($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->validated()); if (($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 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->post_menu($request->validated()); $data = new StoreMenusCategoriesResource($menu); return $this->dataReturn($data); } public function updateProduct(UpdateProductsRequest $request) { info($request); $product_services = new ProductService(); $product = $product_services->updateProducts($request->validated()); 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(updateMenuRequest $request) { $menu_services = new MenuService(); $menu = $menu_services->post_edit_menu($request->validated()); $data = new StoreMenusCategoriesResource($menu); return $this->dataReturn($data); } public function getAdditivesCategories() { $addtives_services = new AddtiveService(); $addtives = $addtives_services->get_additives(); $data = AddtiveCategoriesResource::collection($addtives); return $this->dataReturn($data); } public function addAddtiveCategory(AddAddtiveRequest $request) { $addtives_services = new AddtiveService(); $addtive = $addtives_services->post_additive($request->validated()); $data = new AddtiveCategoriesResource($addtive); return $this->dataReturn($data); } public function updateAddtiveCategory(UpdateAddtiveRequest $request) { $addtives_services = new AddtiveService(); $addtive = $addtives_services->post_edit_additive($request->validated()); $data = new AddtiveCategoriesResource($addtive); return $this->dataReturn($data); } public function getSingleAddtiveCategory(Request $request) { $addtives_services = new AddtiveService(); $addtive = $addtives_services->get_edit_additive($request['addtive_id']); $data = new AddtiveCategoriesResource($addtive); return $this->dataReturn($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 getFeatureProperties(Request $request) { $product_services = new ProductService(); $service_result = $product_services->getFeatureProperties($request->feature_id); $data = PropertiesResource::collection($service_result); return $this->dataReturn($data); } public function postAddition(PostAdditionRequest $request) { $product_services = new ProductService(); $service_result = $product_services->post_addition($request->validated()); $data['addtive'] = new ProductAdditiveResource($service_result); return $this->dataReturn($data); } public function postProductFeatures(PostFeaturesRequest $request) { $product_services = new ProductService(); $service_result = $product_services->postProductFeatures($request->validated()); if (isset($service_result['fail_msg'])) { return $this->failMsg($service_result['fail_msg']); } $data['productfeature_id'] = $service_result['pr']->id; 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); return $this->dataReturn($data); } public function getGroups(Request $request) { $product_services = new ProductService(); $service_result = $product_services->getUpdateGroups($request->product_id); $data = ProductGroupResource::collection($service_result); return $this->dataReturn($data); } public function updateGroups(UpdateGroupsRequest $request) { $product_services = new ProductService(); $service_result = $product_services->updateGroups($request->validated()); if (isset($service_result['fai_msg'])) { return failMsg($service_result['fail_msg']); } $data = ProductGroupResource::collection($service_result); return $this->dataReturn($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); return $this->dataReturn($data); } //delete public function deleteProduct(Request $request) { $product_services = new ProductService(); $msg = $product_services->deleteProduct($request->product_id); return $this->successMsg($msg); } public function deleteMenuCategory(Request $request) { $product_services = new MenuService(); $msg = $product_services->delete_menu($request->menu_id); return $this->successMsg($msg); } public function deleteAddtiveCategory(Request $request) { $product_services = new AddtiveService(); $msg = $product_services->delete_additive($request->additive_id); if (isset($msg['fail_msg'])) { return $this->failMsg($msg['fail_msg']); } return $this->successMsg($msg); } public function removeProductFeature(removeProductFeatureRequest $request) { $product_services = new ProductService(); $service_result = $product_services->removeProductFeature($request->validated()); if (isset($service_result['fail_msg'])) { return $this->failMsg($service_result['fail_msg']); } $msg = trans('stores_dashboard.deleted'); return $this->successMsg($msg); } public function removeGroup(Request $request) { $product_services = new ProductService(); $service_result = $product_services->removeGroup($request->group_id); if (isset($service_result['fail_msg'])) { return $this->failMsg($service_result['fail_msg']); } $msg = trans('stores_dashboard.deleted'); return $this->successMsg($msg); } }
Back to File Manager