<?php
namespace App\Controller;
use App\Repository\AccountFormRepository;
use App\Repository\UserRepository;
use App\Repository\ItemsGalleryVitrineRepository;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Asset\Package;
use Symfony\Component\Asset\VersionStrategy\EmptyVersionStrategy;
use Symfony\Bridge\Doctrine\RegistryInterface;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\JsonResponse;
use App\Entity\SubscriptionPushService;
use App\Repository\SubscriptionPushServiceRepository;
use App\Service\PushNotificationService;
class HomeController extends AbstractController
{
/**
*
*@Route("/", name="home", methods={"GET","POST"})
*
*/
function index(ManagerRegistry $registry, Request $request,UserRepository $userRepository, SubscriptionPushServiceRepository $subscriptionPushServiceRepository)
{
//$subscriptionPushService = $subscriptionPushServiceRepository->findAll();
$response = new Response($this->renderView("home.html.twig"));
return $response;
}
/**
*
*@Route("/jobbers", name="jobbers", methods={"GET","POST"})
*
*/
function jobbersList(ManagerRegistry $registry, Request $request,UserRepository $userRepository, SubscriptionPushServiceRepository $subscriptionPushServiceRepository)
{
//$subscriptionPushService = $subscriptionPushServiceRepository->findAll();
$response = new Response($this->renderView("jobbers.list.landing.html.twig"));
return $response;
}
/**
*
*@Route("/offers", name="offers", methods={"GET","POST"})
*
*/
function offersList(ManagerRegistry $registry, Request $request,UserRepository $userRepository, SubscriptionPushServiceRepository $subscriptionPushServiceRepository)
{
//$subscriptionPushService = $subscriptionPushServiceRepository->findAll();
$response = new Response($this->renderView("offers.list.landing.html.twig"));
return $response;
}
/**
* @Route("lastests-users/{offset}", name="lastests.users")
*/
function latestsUsers(UserRepository $userRepository, $offset){
$offset *= 12;
$users = $userRepository->findLatestsUsers($offset);
return $this->render('latest.users.registered.html.twig', ['users'=>$users]);
}
/**
*@Route("/latests-products", name="latests-products")
*/
function latestsProducts( ItemsGalleryVitrineRepository $itemsGalleryVitrineRepository, $offset=1)
{
$offset *= 12;
$products = $itemsGalleryVitrineRepository->findLatestsProducts();
return $this->render('latests.products.registered.html.twig', ['products'=>$products]);
}
/**
* @Route("/cookie-granted", name="cookie.granted")
*/
function cookie_granted()
{
$response = new JsonResponse(['cookie' => 'enabled']);
return $response;
}
/**
* @Route("/subscription-push-service", name="subscription.push.service")
*/
function SubscriptionPushService( Request $request, PushNotificationService $pushNotificationService, SubscriptionPushServiceRepository $subscriptionPushServiceRepository)
{
$endpoint = $request->request->get('notification-subscription');
$payload = $request->request->get('payload');
$subscriptionPushService = new SubscriptionPushService();
$subscriptionPushService->setSubscription($endpoint);
$subscriptionPushService->setPayload($payload);
try{
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($subscriptionPushService);
$entityManager->flush();
$response = new JsonResponse(['subscription push notifications'=>'ok']);
$report = $pushNotificationService->pushNotification($subscriptionPushServiceRepository);
dump($report);
} catch(Exception $e)
{
$response = new JsonResponse(['subscription push notifications'=>'KO', 'error'=>$e]);
}
return $response;
}
}