PATH:
home
/
lab2454c
/
costbloc.com
/
app
/
Http
/
Controllers
/
Api
/
User
<?php /** * @package WishlistController * @author TechVillage <support@techvill.org> * @contributor Al Mamun <[almamun.techvill@gmail.com]> * @created 26-01-2022 */ namespace App\Http\Controllers\Api\User; use App\Http\Controllers\Controller; use App\Http\Requests\Site\WishlistStoreRequest; use App\Http\Resources\{ WishlistResource }; use App\Models\{ Wishlist, }; use Illuminate\Http\Request; class WishlistController extends Controller { /** * User wishlist * @param Request $request * @return json $data */ public function index(Request $request) { $configs = $this->initialize([], $request->all()); $wishlist = Wishlist::where('user_id', auth()->guard('api')->user()->id); if ($wishlist->count() == 0) { return $this->notFoundResponse(); } $itemName = isset($request->item_name) ? $request->item_name : null; if (!empty($itemName)) { $wishlist->whereHas("item", function ($q) use ($itemName) { $q->where('name', strtolower($itemName)); })->with('item'); } $filter = isset($request->filter) ? $request->filter : null; if (!empty($filter)) { $filterDay = ['today' => today(), 'last_week' => now()->subWeek(), 'last_month' => now()->subMonth(), 'last_year' => now()->subYear()]; if (isset($filter) && array_key_exists($filter, $filterDay)) { $wishlist->whereDate('created_at', '>=', $filterDay[$filter]); } } $date = isset($request->date) ? $request->date : null; if (!empty($date)) { $wishlist->where('created_at', $date); } $keyword = isset($request->keyword) ? $request->keyword : null; if (!empty($keyword)) { if (is_int($keyword)) { $wishlist->where(function ($query) use ($keyword) { $query->where('id', $keyword) ->orwhere('created_at', $keyword); }); } else if (strlen($keyword) >= 2) { $wishlist->where(function ($query) use ($keyword) { $query->whereHas("item", function ($q) use ($keyword) { $q->where('name', 'LIKE', "%" . $keyword . "%"); })->with('item') ->orwhere('created_at', $keyword); }); } } return $this->response([ 'data' => WishlistResource::collection($wishlist->paginate($configs['rows_per_page'])), 'pagination' => $this->toArray($wishlist->paginate($configs['rows_per_page'])->appends($request->all())) ]); } /** * Store Wishlist * * @param WishlistStoreRequest $request * * @return array $response */ public function store(WishlistStoreRequest $request) { $request['user_id'] = auth()->user()->id; $data = (new Wishlist)->store($request->all()); return $this->successResponse([ 'status' => 1, 'message' => __('Product added to your wishlist.'), 'data' => new WishlistResource(Wishlist::find($data['id'])), ]); } /** * Delete wishlist * @param int $id * @return json $response */ public function destroy($id = null, Request $request) { if (is_null($id) && empty($request->ids)) { return $this->unprocessableResponse([], __('Wishlist id is required.')); } $ids = [$id]; if (!empty($request->ids)) { $ids = [$request->ids]; if (is_array($request->ids)) { $ids = $request->ids; } } if (Wishlist::where('user_id', auth()->guard('api')->user()->id)->whereIn('id', $ids)->delete()) { return $this->okResponse([], __('The :x has been successfully deleted.', ['x' => __('Wishlist')])); } return $this->unprocessableResponse([], __('Wishlist id is invalid.')); } }
[-] CategoryController.php
[edit]
[-] AddressController.php
[edit]
[-] CartController.php
[edit]
[-] OrderStatusController.php
[edit]
[-] SellerController.php
[edit]
[+]
..
[-] UserController.php
[edit]
[-] RegisteredSellerController.php
[edit]
[-] OrderController.php
[edit]
[-] BrandController.php
[edit]
[-] WishlistController.php
[edit]
[-] ReviewController.php
[edit]
[-] ProductController.php
[edit]