<?php

namespace OfficeBrain\Bundle\ServiceGroupBundle\Listener;

use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Templating\EngineInterface;
use Symfony\Component\HttpFoundation\Response;

class RequestListener
{
    protected $container;
    protected $templating;

    public function __construct(ContainerInterface $container, EngineInterface $templating) // this is @service_container
    {
        $this->container = $container;
        $this->templating = $templating;
    }

    public function onKernelController(FilterControllerEvent $event)
    {
        //$controller = $event->getController();
        $request = $event->getRequest();
        $controllerRequest = $request->attributes->get('_controller');
       
        try {
            if ($controllerRequest == "OfficeBrain\Bundle\ProductBundle\Controller\ProductController::productDetailAction") {
                //Manage discount price
                //print_r($request->request->all());
            } elseif (strpos($controllerRequest, "OfficeBrain\Bundle\ProductBundle\Controller\ServiceGroupAdminController") !== false) {
                //echo "Nice";
            }
        } catch (Exception $e) {
        }
    }
    
    public function onKernelView(\Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent $event)
    {
        $request = $event->getRequest();
        $controllerRequest = $request->attributes->get('_controller');
        
        try {
            if ($controllerRequest == "OfficeBrain\Bundle\ProductBundle\Controller\ProductController::productDetailAction") {
                /*$data = $event->getControllerResult();
                
                $rewardReferralService = $this->container->get('office_brain_reward_referral_manager');
                $rewardPoint = $rewardReferralService->getTotalPointEarnByProduct($data);
                
                
                $template = $event->getRequest()->attributes->get('_template');
                //Add 10% Markup
                //$data['regular_variations_charges'][0]['rate'] = $data['regular_variations_charges'][0]['rate']+($data['regular_variations_charges'][0]['rate']*0.1) ;
                
                //add reward point for this product
                $data['reward_point'] = $rewardPoint;
                
                $rendered = $this->templating->render($template, $data);
                $event->setResponse(new Response($rendered));*/
            }
        } catch (Exception $e) {
        }
        
        //$regular_variations_charges[0]['rate'] = 4;

        /* @var $request  \Symfony\Component\HttpFoundation\Request */
        /*$request =  $event->getRequest();
        $template = $request->get('_template');
        $route = $request->get('_route');

        if(substr($route,0,7) == 'mobile_'){
            $newTemplate = str_replace('html.twig','mobile.html.twig',$template);

            //Overwrite original template with the mobile one
            $response = $this->templating->renderResponse($newTemplate, $data);
            $event->setResponse($response);
        }*/
    }
}
