<?php
namespace App\Controller\System;
use App\Controller\BaseController;
use App\Entity\System\ProductStatus;
use App\Entity\VignettePaymentMethod\VignettePaymentMethod;
use App\Service\OnesignalService;
use App\Service\SystemService;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Contracts\Translation\TranslatorInterface;
class SystemController extends BaseController
{
public function shopProductStatusAction()
{
return $this->render(
'@templates/AdminCustom/System/products-status.html.twig',
[
'loggedAdmin' => $this->getUser()
]
);
}
public function campaignStatusAction()
{
return $this->render(
'@templates/AdminCustom/System/campaigns-status.html.twig',
[
'loggedAdmin' => $this->getUser()
]
);
}
public function changeCampaignStatusAction(Request $request)
{
$isChanged = SystemService::processCampaignChangeRequestAndChangeIt($request, $this->getEntityManager(), $this->getUser());
if ($isChanged) {
$this->addFlash('success', 'Status modificat cu succes');
} else {
$this->addFlash('error', 'A intervenit o eroare. Va rugam reincercati!');
}
return new Response(json_encode($isChanged));
}
public function changeProductStatusAction(Request $request)
{
$isChanged = SystemService::processProductChangeRequestAndChangeIt($request->request->all(), $this->getEntityManager(), $this->getUser());
if ($isChanged) {
$this->addFlash('success', 'Status modificat cu succes');
} else {
$this->addFlash('error', 'A intervenit o eroare. Va rugam reincercati!');
}
return new Response(json_encode($isChanged));
}
public function shopPaymentStatus()
{
return $this->render(
'@templates/AdminCustom/System/payment-status.html.twig',
[
'paymentMethods' => $this->getDoctrine()->getRepository(VignettePaymentMethod::class)->findAll(),
'loggedAdmin' => $this->getUser()
]
);
}
public function changePaymentStatus(Request $request)
{
$isChanged = SystemService::processPaymentChangeRequestAndChangeIt($request, $this->getEntityManager(), $this->getUser());
if ($isChanged) {
$this->addFlash('success', 'Status modificat cu succes');
} else {
$this->addFlash('error', 'A intervenit o eroare. Va rugam reincercati!');
}
return new Response(json_encode($isChanged));
}
public function getIfIsMobile()
{
return new Response(json_encode($this->isMobile));
}
public function switchDesktop(Request $request): Response
{
$session = $request->getSession();
if ($session->has('switchDesktop')) {
$session->remove('switchDesktop');
} else {
$session->set('switchDesktop', 1);
$session->save();
}
$serializer = $this->getSerializer();
$response = $serializer->serialize('1', 'json');
return new Response($response);
}
public function getErrorMessage(Request $request, TranslatorInterface $translator): Response
{
$elementName = $request->get('elementName');
$errorType = $request->get('errorType');
$locale = null;
if ($request->get('locale')) {
$locale = $request->get('locale');
}
$elementName = $translator->trans('app.ui.error_fields.' . $elementName, $parameters = [], $domain = null, $locale );
$trans = json_encode('error');
if ($errorType == 1) {
$trans = $translator->trans('app.errors.rca.input_is_not_set', array('InputName' => $elementName), $domain = null, $locale);
} else if ($errorType == 2) {
$trans = $translator->trans('app.errors.rca.input_is_invalid', array('InputName' => $elementName), $domain = null, $locale);
}
return new Response($trans);
}
public function getLocale(Request $request)
{
$session = $request->getSession();
$localeCode = 'ro';
if ($session->has('localeCode')) {
$localeCode = $session->get('localeCode');
}
return new Response(json_encode($localeCode));
}
public function retrieveSymfonyMessage(Request $request, TranslatorInterface $translator)
{
$message = $request->get('message');
$message = SystemService::retrieveMessage($message, $translator);
return new Response($message);
}
public function syncOnesignal(Request $request)
{
OnesignalService::syncClient($request, $this->getEntityManager(), $this->getUser(), $this->isMobile);
return new Response(json_encode(array('status' => "ok")));
}
public function templateStatusAction()
{
return $this->render(
'@templates/AdminCustom/System/template-status.html.twig',
[
'loggedAdmin' => $this->getUser()
]
);
}
public function changeTemplateStatusAction(Request $request)
{
$isChanged = SystemService::processTemplateStatusRequestAndChangeIt($request, $this->getEntityManager(), $this->getUser());
if ($isChanged) {
$this->addFlash('success', 'Status modificat cu succes');
} else {
$this->addFlash('error', 'A intervenit o eroare. Va rugam reincercati!');
}
return new Response(json_encode($isChanged));
}
}