diff --git a/src/Docs/V1/Admin/Controllers/Sales/OrderController.php b/src/Docs/V1/Admin/Controllers/Sales/OrderController.php index 42fe37a..9ad43a2 100644 --- a/src/Docs/V1/Admin/Controllers/Sales/OrderController.php +++ b/src/Docs/V1/Admin/Controllers/Sales/OrderController.php @@ -96,10 +96,10 @@ public function list() /** * @OA\Get( - * path="/api/v1/admin/sales/orders/search", + * path="/api/v1/admin/sales/orders/find-by-email", * operationId="SearchSalesOrders", * tags={"Orders"}, - * summary="Search admin order list", + * summary="Search admin order list by email", * description="Returns order list, if you want to retrieve all orders at once pass pagination=0 otherwise ignore this parameter", * security={ {"sanctum_admin": {} }}, * diff --git a/src/Http/Controllers/Api/V1/Admin/Sales/OrderController.php b/src/Http/Controllers/Api/V1/Admin/Sales/OrderController.php index 29796a9..5b83927 100644 --- a/src/Http/Controllers/Api/V1/Admin/Sales/OrderController.php +++ b/src/Http/Controllers/Api/V1/Admin/Sales/OrderController.php @@ -7,6 +7,7 @@ use NexaMerchant\Apis\Http\Resources\Api\V1\Admin\Sales\OrderResource; use Webkul\Sales\Repositories\OrderCommentRepository; use Webkul\Sales\Repositories\OrderRepository; +use Webkul\Sales\Models\Order; class OrderController extends SalesController { @@ -36,8 +37,22 @@ public function findByEmail(Request $request) $validatedData = $request->validate([ 'email' => 'required', ]); - $results = $this->getRepositoryInstance()->findByEmail($request->get('email')); + $order = $request->get('order') ?? 'desc'; + $sort = $request->get('sort') ?? 'id'; + $page = $request->get('page') ?? 1; + $limit = $request->get('limit') ?? 10; + $query = Order::query(); + + $query->where('customer_email', $request->get('email')); + $query->orderBy($sort, $order); + $query->paginate($limit, ['*'], 'page', $page); + + $results = $query->get(); + + + // $results = $this->getRepositoryInstance()->findWhere(["customer_email" => $request->get('email')])->orderBy($sort, $order)->paginate($limit, ['*'], 'page', $page); + return $this->resource()::collection($results); } diff --git a/src/Http/Middleware/AssignRequestId.php b/src/Http/Middleware/AssignRequestId.php index 78068bd..26b16e2 100644 --- a/src/Http/Middleware/AssignRequestId.php +++ b/src/Http/Middleware/AssignRequestId.php @@ -25,6 +25,7 @@ public function handle(Request $request, Closure $next): Response $response = $next($request); $response->headers->set('Request-Id', $requestId); + return $response; } diff --git a/src/Routes/V1/Admin/sales-routes.php b/src/Routes/V1/Admin/sales-routes.php index 7646476..2715855 100644 --- a/src/Routes/V1/Admin/sales-routes.php +++ b/src/Routes/V1/Admin/sales-routes.php @@ -15,10 +15,11 @@ * Order routes. */ Route::controller(OrderController::class)->prefix('orders')->group(function () { - Route::get('', 'allResources'); Route::get('find-by-email', 'findByEmail'); + Route::get('', 'allResources'); + Route::get('{id}', 'getResource'); Route::post('{id}/cancel', 'cancel');