Example #1
0
 public function show($id)
 {
     $product = \App\Models\Product::query()->with(['seller' => function ($q) {
         $q->select('id', 'username');
     }, 'categories'])->find($id);
     if ($userAuth = \Auth::user()) {
         \App\Models\Product::setFavourites(collect([$product]), $userAuth);
     }
     return $product ?: $this->notFoundJson();
 }
Example #2
0
 public function index(UserAuth $userAuth, $uid)
 {
     $seller = \App\Models\User::find($uid) ?: $this->notFoundJson();
     $query = $seller->wares()->select(['id', 'title', 'subtitle', 'seller_id', 'price', 'stock_available', 'starts', 'ends', 'is_active', 'created_at', 'updated_at']);
     $count = $query->count();
     $items = $query->forPage(request('page', 1), request('limit', $this->pageLimit))->get();
     if ($userAuth) {
         $products = collect();
         foreach ($items as $item) {
             $products[] = $item->product;
         }
         \App\Models\Product::setFavourites($products, $userAuth);
     }
     if ($userAuth) {
         \App\Models\Product::setFavourites($items, $userAuth);
     }
     return ["count" => $count, "limit" => request('limit', $this->pageLimit), "page" => request()->input('page', 1), "items" => $items];
 }
Example #3
0
 public function index(UserAuth $userAuth, $uid)
 {
     $seller = \App\Models\User::find($uid) ?: $this->notFoundJson();
     $query = $seller->sells()->with(['product' => function ($q) {
         $q->select('id', 'title');
     }, 'seller' => function ($q) {
         $q->select('id', 'username');
     }, 'buyer' => function ($q) {
         $q->select('id', 'username');
     }]);
     $count = $query->count();
     $items = $query->forPage(request('page', 1), request('limit', $this->pageLimit))->get();
     if ($userAuth) {
         $products = collect();
         foreach ($items as $item) {
             $products[] = $item->product;
         }
         \App\Models\Product::setFavourites($products, $userAuth);
     }
     return ["count" => $count, "limit" => request('limit', $this->pageLimit), "page" => request()->input('page', 1), "items" => $items];
 }