<?php
// This is a extended/changed copy from original: \Shopware\Storefront\Controller\AuthController
namespace Okeonline\MyKeje\Storefront\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Shopware\Storefront\Controller\StorefrontController;
use Shopware\Core\Framework\Routing\Annotation\RouteScope;
use Shopware\Core\System\SalesChannel\SalesChannelContext;
use Okeonline\MyKeje\Storefront\Service\MyKejeOrderService;
use Shopware\Core\Framework\Validation\DataBag\RequestDataBag;
/**
* @RouteScope(scopes={"storefront"})
*/
class MyKejeController extends StorefrontController {
/**
* @var MyKejeOrderService $orderService;
*/
private $orderService;
public function __construct(
MyKejeOrderService $orderService
)
{
$this->orderService = $orderService;
}
/**
* @Route("/mykeje/orders", name="frontend.oo.mykeje.orders", methods={"GET"}, defaults={"XmlHttpRequest"=true})
*/
public function orders(Request $request, RequestDataBag $data, SalesChannelContext $context): Response
{
$this->orderService->setSalesChannelContext($context);
$limit = $request->get('limit', 25);
$page = $request->get('p', 1);
$slot = $request->get('slots');
$searchTerm = $request->get('searchterm') ?? null;
$orderSearchEntityResult = $this->orderService->getOrders($limit, $page, $searchTerm);
return $this->renderStorefront('@OkeonlineMyKeje/storefront/component/mykeje-order-history.html.twig', [
'entitySearchResult' => $orderSearchEntityResult,
'slot' => $slot
]);
}
/**
* @Route("/mykeje/orders-by-status", name="frontend.oo.mykeje.orders-by-status", methods={"GET"}, defaults={"XmlHttpRequest"=true})
*/
public function ordersByStatus(Request $request, RequestDataBag $data, SalesChannelContext $context): Response
{
$this->orderService->setSalesChannelContext($context);
$limit = $request->get('limit', 25);
$page = $request->get('p', 1);
$slot = $request->get('slots');
$searchTerm = $request->get('searchterm') ?? null;
$orderSearchEntityResult = $this->orderService->getOrdersByStateId(null, $limit);
return $this->renderStorefront('@OkeonlineMyKeje/storefront/component/mykeje-order-list.html.twig', [
'entitySearchResult' => $orderSearchEntityResult,
'searchterm' => $searchTerm,
'slot' => $slot
]);
}
/**
* @Route("/mykeje/orders-history-summary", name="frontend.oo.mykeje.orders-history-summary", methods={"GET"}, defaults={"XmlHttpRequest"=true})
*/
public function ordersHistorySummary(Request $request, RequestDataBag $data, SalesChannelContext $context): Response
{
$this->orderService->setSalesChannelContext($context);
$limit = $request->get('limit', 25);
$page = $request->get('p', 1);
$slot = $request->get('slots');
$searchTerm = $request->get('searchterm') ?? null;
$orderSearchEntityResult = $this->orderService->getOrders($limit, $page);
return $this->renderStorefront('@OkeonlineMyKeje/storefront/component/mykeje-order-list.html.twig', [
'entitySearchResult' => $orderSearchEntityResult,
'slot' => $slot
]);
}
/**
* @Route("/mykeje/orders-history", name="frontend.oo.mykeje.orders-history", methods={"GET"}, defaults={"XmlHttpRequest"=true})
*/
public function ordersHistory(Request $request, RequestDataBag $data, SalesChannelContext $context): Response
{
$this->orderService->setSalesChannelContext($context);
$limit = $request->get('limit', 25);
$page = $request->get('p', 1);
$slot = $request->get('slots');
$orderSearchEntityResult = $this->orderService->getOrders($limit, $page);
return $this->renderStorefront('@OkeonlineMyKeje/storefront/component/mykeje-order-history-inner.html.twig', [
'entitySearchResult' => $orderSearchEntityResult,
'slot' => $slot
]);
}
}