Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/src/ContactBundle/Controller/
Upload File :
Current File : //var/www/v3.cesa.co.za/src/ContactBundle/Controller/DefaultController.php

<?php

namespace App\ContactBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\Request;
use App\ContactBundle\Form\Type\ContactUsType;
use App\ContactBundle\Form\Type\ReferType;
use App\ContactBundle\Form\Type\SendTAFriendType;
use App\CoreBundle\Services\ServiceGetterManager;

class DefaultController extends AbstractController {

    public function indexAction(Request $request, ServiceGetterManager $sg) {

        try {

            $contactUsForm = $this->createForm(ContactUsType::class);

            $referrer = $sg->get('session_values.manager')->getValue(array('value_name' => 'contact_us_referrer'));

            if (strlen($referrer) <= 0) {
                $sg->get('session_values.manager')->setValue(array('value_name' => 'contact_us_referrer', 'value' => $request->headers->get('referer')));
            }

            if ($request->getMethod() == 'POST') {

                $contactUsForm->handleRequest($request);

                if ($contactUsForm->isValid()) {

                    $requestValues = $contactUsForm->getData();

                    $testCreate = $sg->get('contact_message.manager')->sendContactUs($requestValues);

                    if (strlen($testCreate) <= 0) {
                        return $this->render('@ContactBundle/Default/contact.us.success.html.twig');
                    } else {
                        $contactUsForm->get('fromName')->addError(new FormError($testCreate));
                    }
                } else {
                    $this->get('session')->getFlashBag()->add(
                            'error', 'Unable to send your message. Please check the form and try again.'
                    );
                }
            }
        } catch (\Exception $ex) {
            $logger = $sg->get('error_log.manager');
            $logger->error('Error on send to a friend page: ' . $ex->getMessage());
            return $this->redirect($this->generateUrl('iga_core_500', array('message' => $ex->getMessage() . ' - ' . $ex->getTraceAsString())));
        }

        return $this->render(
                        '@ContactBundle/Default/index.html.twig', array(
                    'form' => $contactUsForm->createView()
                        )
        );
    }

    public function sendTAFriendAction(Request $request, ServiceGetterManager $sg) {

        try {

            $backToURL = $this->generateUrl('iga_core_home');

            $request = $request;

            $sendTAFriendForm = $this->createForm(SendTAFriendType::class);
            $contentId = $request->get('contentId', '');

            $contentArr = $sg->get('content.manager')->getContentObject($contentId);

            if (strlen($contentId) > 0) {
                $backToURL = $this->generateUrl('iga_content_page', array('contentId' => $contentId));
            }

            if ($request->getMethod() == 'POST') {

                $sendTAFriendForm->handleRequest($request);

                if ($sendTAFriendForm->isValid()) {

                    $requestValues = $request->get('send_ta_friend');
                    $requestValues['contentId'] = $contentId;

                    $testCreate = $sg->get('contact_message.manager')->sendTAFriend($requestValues);

                    if (strlen($testCreate) <= 0) {
                        return $this->render(
                                        '@ContactBundle/Default/send.ta.friend.success.html.twig', array(
                                    'contentId' => $contentId,
                                    'contentArr' => $contentArr
                                        )
                        );
                    } else {
                        $sendTAFriendForm->get('fromName')->addError(new FormError($testCreate));
                    }
                }
            }
        } catch (\Exception $ex) {
            $logger = $sg->get('error_log.manager');
            $logger->error('Error on send to a friend page: ' . $ex->getMessage());
            return $this->redirect($this->generateUrl('iga_core_500', array('message' => $ex->getMessage() . ' - ' . $ex->getTraceAsString())));
        }

        return $this->render(
                        '@ContactBundle/Default/send.ta.friend.html.twig', array(
                    'backToURL' => $backToURL, 'form' => $sendTAFriendForm->createView(), 'contentId' => $contentId,
                    'contentArr' => $contentArr
                        )
        );
    }

    public function referAction(Request $request, ServiceGetterManager $sg, $cultureString = '') {
        try {

            $referForm = $this->createForm(ReferType::class);

            if ($request->getMethod() == 'POST') {

                $referForm->handleRequest($request);

                if ($referForm->isValid()) {

                    $requestValues = $referForm->getData();

                    $testCreate = $sg->get('contact_message.manager')->sendRefer($requestValues);

                    if (strlen($testCreate) <= 0) {
                        return $this->render('@ContactBundle/Default/refer.success.html.twig');
                    } else {
                        $referForm->get('fromName')->addError(new FormError($testCreate));
                    }
                } else {
                    $this->get('session')->getFlashBag()->add(
                            'error', 'Unable to send your message. Please check the form and try again.'
                    );
                }
            }
        } catch (\Exception $ex) {
            $logger = $sg->get('error_log.manager');
            $logger->error('Error on refer a friend page: ' . $ex->getMessage());
            return $this->redirect($this->generateUrl('iga_core_500', array('message' => $ex->getMessage() . ' - ' . $ex->getTraceAsString())));
        }

        return $this->render('@ContactBundle/Default/refer.html.twig', array('form' => $referForm->createView()));
    }

    public function acceptAction(Request $request, ServiceGetterManager $sg) {
        try {

            $userListManager = $sg->get('user_list.manager');

            $inviteId = $request->get('inviteId');

            $userList = $userListManager->find($inviteId);

            if (!is_object($userList)) {
                throw new \Exception('Invalid invitation. Please click on your invite again, or copy and paste the URL carefully');
            }

            $userListManager->doLogin($request, $userList);

            $this->get('session')->getFlashBag()->add('success', 'Thank you for accepting the invite. Please complete your details to confirm your account information.');
            return $this->redirect($this->generateUrl('iga_user_my_details'));
        } catch (\Exception $ex) {
            $logger = $sg->get('error_log.manager');
            $logger->error('Error on refer a friend accept page: ' . $ex->getMessage());
            return $this->redirect($this->generateUrl('iga_core_500', array('message' => $ex->getMessage() . ' - ' . $ex->getTraceAsString())));
        }
    }
}