diff --git a/packages/Sarga/API/Http/Controllers/Orders.php b/packages/Sarga/API/Http/Controllers/Orders.php index 17df8e57f..c38503556 100644 --- a/packages/Sarga/API/Http/Controllers/Orders.php +++ b/packages/Sarga/API/Http/Controllers/Orders.php @@ -2,6 +2,7 @@ namespace Sarga\API\Http\Controllers; +use Illuminate\Http\Request; use Illuminate\Support\Facades\Event; use Sarga\API\Http\Resources\Customer\OrderResource; use Sarga\Shop\Repositories\OrderItemRepository; @@ -58,4 +59,39 @@ class Orders extends OrderController ]); } } + + /** + * Returns a listing of the resource. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function allResources(Request $request) + { + $query = $this->getRepositoryInstance()->scopeQuery(function ($query) use ($request) { + if ($this->isAuthorized()) { + $query = $query->where('customer_id', $request->user()->id); + } + + foreach ($request->except($this->requestException) as $input => $value) { + $query = $query->whereIn($input, array_map('trim', explode(',', $value))); + } + + if ($sort = $request->input('sort')) { + $query = $query->orderBy($sort, $request->input('order') ?? 'desc'); + } else { + $query = $query->orderBy('id', 'desc'); + } + + return $query; + }); + + if (is_null($request->input('pagination')) || $request->input('pagination')) { + $results = $query->paginate($request->input('limit') ?? 10); + } else { + $results = $query->get(); + } + + return $this->getResourceCollection($results); + } } \ No newline at end of file