ldc-dam/app/Http/Controllers/PanierController.php

123 lines
2.3 KiB
PHP
Raw Normal View History

2019-07-31 12:22:24 +02:00
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Panier;
use App\Media;
class PanierController extends Controller
{
/**
* Pas principale des paniers
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$paniers = "";
return view('panier.index')->with([
'paniers'=> $paniers,
]);
}
/**
* Ajout de média à un panier
*/
public function addMediasBasket(Request $request)
{
$response = false;
$mediasToAdd = $request->input('medias');
$panierId = $request->input('panier_id');
$panier = Panier::where('id', $panierId)->with('medias')->first();
if($panier){
$result = $panier->medias()->syncWithoutDetaching($mediasToAdd);
$medias = Media::whereIn('id', $result['attached'])->get();
$response = $medias;
}
return json_encode($response);
}
/**
* Suppression de média à un panier
*/
public function removeMediasBasket(Request $request)
{
$response = false;
$mediaToRemove = $request->input('media_id');
$panierId = $request->input('panier_id');
$panier = Panier::where('id', $panierId)->with('medias')->first();
if($panier && $mediaToRemove != ""){
$panier->medias()->detach($mediaToRemove);
$response = true;
}
return json_encode($response);
}
/**
* Ajoute un panier
*/
public function addBasket(Request $request)
{
$response = false;
$title = $request->input('title');
if($title == ""){
$title = "Panier du ".date("d/m/Y");
}
$panier = new Panier();
$panier->owner = Auth::user()->id;
$panier->libelle = $title;
if($panier->save()){
$response = $panier;
}
return json_encode($response);
}
/**
* supprimer un panier
*
*/
public function removeBasket(Request $request)
{
$response = false;
$user_id = Auth::user()->id;
$basket_id = $request->input('basket_id');
$panier = Panier::where('id', $basket_id);
if($panier){
$panier->delete();
$response = true;
}
return json_encode($response);
}
/**
* Charge un panier
*/
public function loadBasket(Request $request)
{
$response = false;
$panierId = $request->input('panier_id');
$panier = Panier::where('id', $panierId)->with('medias')->first();
if($panier){
$response = $panier;
}
return json_encode($response);
}
}