123 lines
2.3 KiB
PHP
123 lines
2.3 KiB
PHP
|
|
<?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);
|
||
|
|
}
|
||
|
|
}
|