Edit File: ProviderController.php
<?php namespace App\Http\Controllers\Api\User; use App\Http\Controllers\Controller; use App\Http\Requests\Api\User\Home\GetProvidersRequest; use App\Http\Resources\Api\BasicResource; use App\Http\Resources\Api\General\Settings\CategoryResource; use App\Http\Resources\Api\User\ProductAddonsResource; use App\Http\Resources\Api\User\ProductClassificationResource; use App\Http\Resources\Api\User\ProductDetailsResource; use App\Http\Resources\Api\User\ProductResource; use App\Http\Resources\Api\User\ProviderCategoriesResource; use App\Http\Resources\Api\User\ProviderCollectionResource; use App\Services\Provider\ProviderService; use App\Traits\PaginationTrait; use App\Traits\ResponseTrait; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; class ProviderController extends Controller { use ResponseTrait, PaginationTrait; public function __construct( private ProviderService $ProviderService, ) { } public function providers(GetProvidersRequest $request): JsonResponse { $providers = $this->ProviderService->getFilteredProviders(request: $request, paginateNum: 7)['rows']; return $this->successData( [ 'providers' => ProviderCollectionResource::collection($providers), 'pagination' => $this->paginationModel($providers) ] ); } public function detailsWithCategories($id): JsonResponse { $provider = $this->ProviderService->find($id); return $this->successData(ProviderCategoriesResource::make($provider)); } public function providerClassifications($provider_id, $id): JsonResponse { $result = $this->ProviderService->providerClassificationsAccordingToCategory(category_id: $id, provider_id: $provider_id); return $this->response(key: $result['key'], msg: $result['msg'], data: CategoryResource::collection($result['rows'])); } public function allSubCategoryProviderProducts($provider_id, Request $request, $sub_category_id = null): JsonResponse { $result = $this->ProviderService->getProviderProducts(provider_id: $provider_id, request: $request, paginateNum: $this->paginateNum(), sub_category_id: $sub_category_id); return $this->successData( [ 'products' => ProductResource::collection($result['rows']), 'pagination' => $this->paginationModel($result['rows']) ] ); // return $this->response(key: $result['key'], msg: $result['msg'], data: ProductResource::collection($result['rows'])); } public function providerProducts($provider_id, Request $request, $classification_id = null): JsonResponse { $result = $this->ProviderService->getProviderProducts(provider_id: $provider_id, request: $request, paginateNum: $this->paginateNum(), classification_id: $classification_id); return $this->successData( [ 'products' => ProductResource::collection($result['rows']), 'pagination' => $this->paginationModel($result['rows']) ] ); // return $this->response(key: $result['key'], msg: $result['msg'], data: ProductResource::collection($result['rows'])); } public function productAddons($provider_id, $product_id): JsonResponse { $result = $this->ProviderService->findProviderProduct(provider_id: $provider_id, product_id: $product_id); return $this->response(key: $result['key'], msg: $result['msg'], data: ProductDetailsResource::make($result['row'])); } }
Back to File Manager