Edit File: HomeController.php
<?php namespace App\Http\Controllers\Api\Delegate; use App\Enums\OrderStatusEnum; use App\Enums\ProductDeliveryTypesEnum; use App\Http\Controllers\Controller; use App\Http\Requests\Api\Delegate\Order\AcceptOrderRequest; use App\Http\Requests\Api\Delegate\Order\IgnoreOrderRequest; use App\Http\Resources\Api\Delegate\Orders\OrderDetailsResource; use App\Http\Resources\Api\Delegate\Orders\OrdersResource; use App\Services\Api\OrderService; use App\Services\Delegate\HomeService; use App\Traits\ResponseTrait; use Illuminate\Http\JsonResponse; class HomeController extends Controller { use ResponseTrait; public function __construct(private OrderService $orderService) {} public function getNewOrders(): JsonResponse { $orders = auth('delegate')->user()->is_available_to_recieve_orders ? $this->orderService->getNearestOrders( user: 'delegate_id', statuses: [OrderStatusEnum::Prepared->value], with: ['orderItems.product.productImages'], conditions: ['receiving_method' => ProductDeliveryTypesEnum::Home->value, 'delegate_id' => null] )['orders'] : collect([]); return $this->response('success', trans('apis.success'), OrdersResource::collection($orders), [ 'is_available' => auth()->user()->is_available_to_recieve_orders, ]); } public function acceptOrder(AcceptOrderRequest $request): JsonResponse { $result = $this->orderService ->updateOrder(order: $request->validated()['order'], updated_data: ['delegate_id' => auth()->id()]); return $this->response('success', $result['msg'], OrderDetailsResource::make($result['order']->load('provider'))); } public function ignoreOrder(IgnoreOrderRequest $request): JsonResponse { $result = $this->orderService->delegateIgnoreOrder(delegate_id: auth()->id(), order_id: $request->order_id); return $this->response('success', $result['msg']); } public function showOrder($order_id): JsonResponse { $order = $this->orderService->details(id: $order_id, user: 'delegate_id', with: ['provider', 'user']); return $this->response('success', __('apis.success'), OrdersResource::make($order)); } }
Back to File Manager