HOME


Mini Shell 1.0
Negocios La Pieza.DO | Registrate o Inicia Sesión

¡Página no encontrada!

La página que busca no se encuentra en nuestro servidor.

Volver al inicio
DIR: /var/www/devs.lapieza.net/app/Http/Controllers/Api/V2/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Controllers/Api/V2/WishlistController.php
<?php



namespace App\Http\Controllers\Api\V2;



use App\Http\Resources\V2\WishlistCollection;

use App\Models\Wishlist;

use App\Models\Product;

use Illuminate\Http\Request;



class WishlistController extends Controller

{



    public function index()

    {

        $product_ids = Wishlist::where('user_id', auth()->user()->id)->pluck("product_id")->toArray();

        $existing_product_ids = Product::whereIn('id', $product_ids)->pluck("id")->toArray();



        $query = Wishlist::query();

        $query->where('user_id', auth()->user()->id)->whereIn("product_id", $existing_product_ids);



        return new WishlistCollection($query->latest()->get());

    }



    public function store(Request $request)

    {

        Wishlist::updateOrCreate(

            ['user_id' => $request->user_id, 'product_id' => $request->product_id]

        );

        return response()->json(['message' => translate('Product is successfully added to your wishlist')], 201);

    }



    public function destroy($id)

    {

        try {

            Wishlist::destroy($id);

            return response()->json(['result' => true, 'message' => translate('Product is successfully removed from your wishlist')], 200);

        } catch (\Exception $e) {

            return response()->json(['result' => false, 'message' => $e->getMessage()], 200);

        }



    }



    public function add(Request $request)

    {

        $product = Wishlist::where(['product_id' => $request->product_id, 'user_id' => auth()->user()->id])->count();

        if ($product > 0) {

            return response()->json([

                'message' => translate('Product present in wishlist'),

                'is_in_wishlist' => true,

                'product_id' => (integer)$request->product_id,

                'wishlist_id' => (integer)Wishlist::where(['product_id' => $request->product_id, 'user_id' => auth()->user()->id])->first()->id

            ], 200);

        } else {

            Wishlist::create(

                ['user_id' =>auth()->user()->id, 'product_id' => $request->product_id]

            );



            return response()->json([

                'message' => translate('Product added to wishlist'),

                'is_in_wishlist' => true,

                'product_id' => (integer)$request->product_id,

                'wishlist_id' => (integer)Wishlist::where(['product_id' => $request->product_id, 'user_id' => auth()->user()->id])->first()->id

            ], 200);

        }



    }



    public function remove(Request $request)

    {

        $product = Wishlist::where(['product_id' => $request->product_id, 'user_id' =>  auth()->user()->id])->count();

        if ($product == 0) {

            return response()->json([

                'message' => translate('Product in not in wishlist'),

                'is_in_wishlist' => false,

                'product_id' => (integer)$request->product_id,

                'wishlist_id' => 0

            ], 200);

        } else {

            Wishlist::where(['product_id' => $request->product_id, 'user_id' => auth()->user()->id])->delete();



            return response()->json([

                'message' => translate('Product is removed from wishlist'),

                'is_in_wishlist' => false,

                'product_id' => (integer)$request->product_id,

                'wishlist_id' => 0

            ], 200);

        }

    }



    public function isProductInWishlist(Request $request)

    {

        $product = Wishlist::where(['product_id' => $request->product_id, 'user_id' => auth()->user()->id])->count();

        if ($product > 0)

            return response()->json([

                'message' => translate('Product present in wishlist'),

                'is_in_wishlist' => true,

                'product_id' => (integer)$request->product_id,

                'wishlist_id' => (integer)Wishlist::where(['product_id' => $request->product_id, 'user_id' => auth()->user()->id])->first()->id

            ], 200);



        return response()->json([

            'message' => translate('Product is not present in wishlist'),

            'is_in_wishlist' => false,

            'product_id' => (integer)$request->product_id,

            'wishlist_id' => 0

        ], 200);

    }

}