관리-도구
편집 파일: ShippingTypeController.php
<?php namespace App\Http\Controllers\Vendor\Shipping; use App\Contracts\Repositories\ShippingTypeRepositoryInterface; use App\Http\Controllers\BaseController; use App\Http\Requests\Vendor\ShippingTypeRequest; use App\Services\ShippingTypeService; use Illuminate\Contracts\View\View; use Illuminate\Database\Eloquent\Collection; use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; class ShippingTypeController extends BaseController { /** * @param ShippingTypeRepositoryInterface $shippingTypeRepo * @param ShippingTypeService $shippingTypeService */ public function __construct( private readonly ShippingTypeRepositoryInterface $shippingTypeRepo, private readonly ShippingTypeService $shippingTypeService ) { } /** * @param Request|null $request * @param string|null $type * @return View|Collection|LengthAwarePaginator|callable|RedirectResponse|null */ public function index(?Request $request, ?string $type = null): View|Collection|LengthAwarePaginator|null|callable|RedirectResponse { return null ; } /** * @param ShippingTypeRequest $request * @return JsonResponse */ public function addOrUpdate(ShippingTypeRequest $request) :JsonResponse { $vendorId = auth('seller')->id(); $shippingType = $this->shippingTypeRepo->getFirstWhere(['seller_id' => $vendorId]); if (!empty($shippingType)) { $this->shippingTypeRepo->update( id: $shippingType['id'], data: $this->shippingTypeService->getShippingTypeDataForUpdate(request: $request) ); } else { $this->shippingTypeRepo->add( data: $this->shippingTypeService->getShippingTypeDataForAdd( request: $request, id: $vendorId) ); } return response()->json(); } }