Edit File: ProductController.php
<?php namespace App\Http\Controllers\Api\Provider; use App\Http\Controllers\Controller; use App\Http\Requests\Api\Provider\Product\{StoreProductRequest, UpdateProductRequest}; use App\Http\Resources\Api\General\Settings\CategoryResource; use App\Http\Resources\Api\Provider\{ProductResource, ProductDetailsResource}; use App\Services\CategoryService; use App\Services\Provider\ProductService; use App\Traits\PaginationTrait; use App\Traits\ResponseTrait; class ProductController extends Controller { use ResponseTrait, PaginationTrait; public function __construct(private ProductService $productService) {} public function index() { $products = $this->productService->all(paginateNum: $this->paginateNum()); return $this->successData([ 'products' => ProductResource::collection($products), 'pagination' => $this->paginationModel($products) ]); } public function store(StoreProductRequest $request) { $product = $this->productService->create($request->validated()); return $this->response('success', __('apis.added'), ['product_id' => $product->id]); } public function show($id) { $product = $this->productService->find($id); return $this->successData(ProductDetailsResource::make($product)); } public function update(UpdateProductRequest $request, $id) { $product = $this->productService->update($request->validated(), $id); return $this->response('success', __('apis.updated'), ['product_id' => $product->id]); } public function destroy($id) { $result = $this->productService->delete($id); return $this->response(key: $result['key'], msg: $result['msg']); } public function deleteAttachement($id) { $result = $this->productService->deleteImage($id); return $this->response($result['key'], $result['msg']); } public function getListOfSubCategoriesForProviders() { $subCategories = (new CategoryService())->getListOfSubCategoriesForProviders(); return $this->successData(CategoryResource::collection($subCategories)); } }
Back to File Manager