src/Controller/Home/HomeController.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Home;
  3. use Symfony\Component\HttpFoundation\JsonResponse;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. /**
  10.  * @Route("/", name="home")
  11.  */
  12. class HomeController extends AbstractController
  13. {
  14.     public $session;
  15.     public $appUrl;
  16.     public function __construct(
  17.         SessionInterface $session
  18.     )
  19.     {
  20.         $this->session $session;
  21.         $this->appUrl $_ENV['APP_URL'];
  22.     }
  23.     public function ssr(Request $request) {
  24.         $appurl $_SERVER['APP_URL'];
  25.         $ssrurl $_SERVER['SSR_URL'];
  26. //        dump($_SERVER);
  27. //        die();
  28.         $url $request->getUri();
  29.         $url str_replace($appurl$ssrurl$url);
  30.         
  31.         $my_query_string http_build_query($request->query->all());
  32.         $curl curl_init($url);
  33.         curl_setopt($curlCURLOPT_HEADER1); // Include headers
  34.         curl_setopt($curlCURLOPT_RETURNTRANSFER1); // Return data as a string
  35.          curl_setopt($curlCURLOPT_PORT3012);
  36.         $result curl_exec($curl);
  37.         $status_code curl_getinfo($curlCURLINFO_HTTP_CODE);
  38.         $content_type curl_getinfo($curlCURLINFO_CONTENT_TYPE);
  39.         
  40.         $header_size curl_getinfo($curlCURLINFO_HEADER_SIZE);
  41.         $header substr($result0$header_size);
  42.         $body substr($result$header_size);
  43.         curl_close($curl);
  44.         // dd($result);
  45.         $response $this->render('home/ssr.html.twig', ['content' => $body]);
  46.         $response->headers->set('content-type'$content_type);
  47.         return $response;
  48.     }
  49.     /**
  50.      * @Route("register", name="register")
  51.      */
  52.     public function register()
  53.     {
  54.         // return $this->render('home/account.html.twig');
  55.     }
  56.     /**
  57.      * @Route("login",name="login")
  58.      */
  59.     public function login()
  60.     {
  61.         // return $this->render('home/login.html.twig');
  62.     }
  63.     /**
  64.      * @Route("logout",name="logout")
  65.      */
  66.     public function logout()
  67.     {
  68.         // $this->session->remove("_token");
  69.     }
  70.     /**
  71.      * @Route("password/reset",name="password.reset")
  72.      */
  73.     public function resetPassword()
  74.     {
  75.         // return $this->render('home/resetpassword.html.twig');
  76.     }
  77.     /**
  78.      * @Route("password/congrats",name="password/congrats")
  79.      */
  80.     public function PasswordUpdate()
  81.     {
  82.         // return $this->render('home/congrats.html.twig');
  83.     }
  84.     /**
  85.      * @Route("kullanici-sozlesmesi",name="privacy")
  86.      */
  87.     public function Privacy()
  88.     {
  89.         $token $this->isUserLogin();
  90.         $curl curl_init();
  91.         curl_setopt_array($curl, array(
  92.             CURLOPT_URL => $this->appUrl."api/v1/static/content/kullanici",
  93.             CURLOPT_RETURNTRANSFER => true,
  94.             CURLOPT_ENCODING => "",
  95.             CURLOPT_MAXREDIRS => 10,
  96.             CURLOPT_TIMEOUT => 60,
  97.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  98.             CURLOPT_CUSTOMREQUEST => "GET",
  99.             CURLOPT_HTTPHEADER => array(
  100.                 "cache-control: no-cache",
  101.             ),
  102.         ));
  103.         $response curl_exec($curl);
  104.         $err curl_error($curl);
  105.         curl_close($curl);
  106.         if ($err) {
  107.             return $this->forward('App\Controller\Home\HomeController::p404');
  108.         } else {
  109.             $response json_decode($response);
  110.             dump($response);
  111.             // return $this->render('home/privacy.html.twig',
  112.             //     [
  113.             //         'static' => $response->data,
  114.             //         'token' => $token
  115.             //     ]
  116.             //     );
  117.         }
  118.     }
  119.     /**
  120.      * @Route("gizlilik-sozlesmesi",name="agreement")
  121.      */
  122.     public function Agreement()
  123.     {
  124.         $token $this->isUserLogin();
  125.         $curl curl_init();
  126.         curl_setopt_array($curl, array(
  127.             CURLOPT_URL => $this->appUrl."api/v1/static/content/gizlilik",
  128.             CURLOPT_RETURNTRANSFER => true,
  129.             CURLOPT_ENCODING => "",
  130.             CURLOPT_MAXREDIRS => 10,
  131.             CURLOPT_TIMEOUT => 60,
  132.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  133.             CURLOPT_CUSTOMREQUEST => "GET",
  134.             CURLOPT_HTTPHEADER => array(
  135.                 "cache-control: no-cache",
  136.             ),
  137.         ));
  138.         $response curl_exec($curl);
  139.         $err curl_error($curl);
  140.         curl_close($curl);
  141.         if ($err) {
  142.             return $this->forward('App\Controller\Home\HomeController::p404');
  143.         } else {
  144.             $response json_decode($response);
  145.             // return $this->render('home/agreement.html.twig',
  146.             //     [
  147.             //         'static' => $response->data,
  148.             //         'token' => $token
  149.             //     ]
  150.             // );
  151.         }
  152.     }
  153.     /**
  154.      * @Route("coffeePhotos-fali-bakan-falcilar", name="coffeePhotos-fali-bakan-falcilar" , options={"utf8": true})
  155.      * @return Response
  156.      */
  157.     public function fortuneCategoryKahveFali()
  158.     {
  159.         $token $this->isUserLogin();
  160.         $data $this->getFortuneTellersBySlug("coffeePhotos-fali");
  161.         $desc $this->getFortuneCategories();
  162.         // return $this->render('home/category.html.twig',
  163.         //     [
  164.         //         'token' => $token,
  165.         //         'tellers' => $data,
  166.         //         'catName' => "Kahve Falı",
  167.         //         'desc' => $desc,
  168.         //         'keywords' => "Kahve falı bak, coffeePhotos falıma bakmak istiyorum, kafe falı, gerçek fal baktır, tece falı, coffeePhotos falı ne zaman aşık olucam, coffeePhotos falında her şey cıkar mı? Kahve falının incelikleri, gerçek coffeePhotos falı, ücretsiz coffeePhotos falı, ücretsiz",
  169.         //         'metaDesc' => "Kahve falı bakan gerçek falcılar yamiba.com’da! Telvelerin  anlamını merak ediyor musun? Hemen coffeePhotos falı baktır çok şaşıracaksın."
  170.         //     ]
  171.         // );
  172.     }
  173.     /**
  174.      * @Route("tarot-fali-bakan-falcilar", name="tarot-fali-bakan-falcilar" , options={"utf8": true})
  175.      * @return Response
  176.      */
  177.     public function fortuneCategoryTarotFali()
  178.     {
  179.         $token $this->isUserLogin();
  180.         $data $this->getFortuneTellersBySlug("tarot-fali");
  181.         $desc $this->getFortuneCategories();
  182.         // return $this->render('home/category.html.twig',
  183.         //     [
  184.         //         'token' => $token,
  185.         //         'tellers' => $data,
  186.         //         'catName' => "Tarot Falı",
  187.         //         'desc' => $desc,
  188.         //         'keywords' => "tarot falı nasıl bakılır, tarot falı nedir? Tarot falı bakan falcılar, en iyi tarotcu, tarot falı cıkar mı, Tarot falı kartları nelerdir, tarot aşk falı, tarot falı bakan en iyi falcılar, kart falı, kart falı bak, kart falı baktır, ücretsiz tarot, ne zaman evlenicem",
  189.         //         'metaDesc' => "Tarot falı bakan gerçek falcılar yamiba.com’da! Kartların anlamını ve geleceğini merak ediyor musun?"
  190.         //     ]
  191.         // );
  192.     }
  193.     /**
  194.      * @Route("katina-fali-bakan-falcilar", name="katina-fali-bakan-falcilar" , options={"utf8": true})
  195.      * @return Response
  196.      */
  197.     public function fortuneCategoryKatinaFali()
  198.     {
  199.         $token $this->isUserLogin();
  200.         $data $this->getFortuneTellersBySlug("katina-fali");
  201.         $desc $this->getFortuneCategories();
  202.         // return $this->render('home/category.html.twig',
  203.         //     [
  204.         //         'token' => $token,
  205.         //         'tellers' => $data,
  206.         //         'catName' => "Katina Falı",
  207.         //         'desc' => $desc,
  208.         //         'keywords' => "katina falı nasıl bakılır, Katina aşk falı çıkar mı, Katina falı bakan falcılar en iyi falcılar yamiba’da, yamiba’da katina falı baktır. Aşk falı,gerçek fal baktır, katina kart falı, iişki açılımı kader açılımı yamiba katina falı bakan en iyi falcılar, para açılımı, ne zaman evlenicem katina, ücretsiz katina",
  209.         //         'metaDesc' => "Katina aşk falı bakan gerçek falcılar yamiba.com’da! Katina kartlarının  anlamını merak ediyor musun? Hemen katina aşk falı baktır çok şaşıracaksın."
  210.         //     ]
  211.         // );
  212.     }
  213.     /**
  214.      * @Route("ruya-yorumu-bakan-falcilar", name="ruya-yorumu-bakan-falcilar" , options={"utf8": true})
  215.      * @return Response
  216.      */
  217.     public function fortuneCategoryRuyaYorumu()
  218.     {
  219.         $token $this->isUserLogin();
  220.         $data $this->getFortuneTellersBySlug("ruya-yorumu");
  221.         $desc $this->getFortuneCategories();
  222.         // return $this->render('home/category.html.twig',
  223.         //     [
  224.         //         'token' => $token,
  225.         //         'tellers' => $data,
  226.         //         'catName' => "Rüya Yorumu",
  227.         //         'desc' => $desc,
  228.         //         'keywords' => "rüya yorumu anlamı, riyada görmek ne demek, rüyada görmek ne anlama geliyor, rüya tabirleri, rüya falcısı, ruya yorumuna bak, rüya falım, rüya yorumum",
  229.         //         'metaDesc' => "Rüya yorumu bakan gerçek falcılar yamiba.com’da! Rüyalarının anlamını merak ediyor musun?"
  230.         //     ]
  231.         // );
  232.     }
  233.     /**
  234.      * @Route("iliski-danismani-bakan-falcilar", name="iliski-danismani-bakan-falcilar" , options={"utf8": true})
  235.      * @return Response
  236.      */
  237.     public function fortuneCategoryIliskiDanismani()
  238.     {
  239.         $token $this->isUserLogin();
  240.         $data $this->getFortuneTellersBySlug("iliski-danismani");
  241.         $desc $this->getFortuneCategories();
  242.         // return $this->render('home/category.html.twig',
  243.         //     [
  244.         //         'token' => $token,
  245.         //         'tellers' => $data,
  246.         //         'catName' => "İlişki Danışmanı",
  247.         //         'desc' => $desc,
  248.         //         'keywords' => "İlişki danışmanı falcılar, mutlu bir ilişki nasıl olmalı, sevgilimle nasıl barısırım, sevgilim beni seviyor mu,ask hayatım, sevgilim",
  249.         //         'metaDesc' => "İlişki danışmanı bakan gerçek falcılar yamiba.com’da! İlişkindeki sorunlaru hemen çözmek için danışmanlarımıza başvur, çok şaşıracaksın."
  250.         //     ]
  251.         // );
  252.     }
  253.     /**
  254.      * @Route("el-fali-bakan-falcilar", name="el-fali-bakan-falcilar" , options={"utf8": true})
  255.      * @return Response
  256.      */
  257.     public function fortuneCategoryElFali()
  258.     {
  259.         $token $this->isUserLogin();
  260.         $data $this->getFortuneTellersBySlug("el-fali");
  261.         $desc $this->getFortuneCategories();
  262.         // return $this->render('home/category.html.twig',
  263.         //     [
  264.         //         'token' => $token,
  265.         //         'tellers' => $data,
  266.         //         'catName' => "El Falı",
  267.         //         'desc' => $desc,
  268.         //         'keywords' => "El falı nasıl bakılır, El falı bakan falcılar, El falı bakmanın kuralları, el falı bakmanın incelikleri, el falı çıkar mı, el falı hangi elle bakılır, el falı ile geleceğini öğren, el falı bakan falcılar, elfalı fiyatları, en iyi el falı bakanfalcılar yamiba’da, el falı bak, el falı kaç lira, ne zaman evlenicem",
  269.         //         'metaDesc' => "El falı bakan gerçek falcılar yamiba.com’da! Elindeki çizgilerin anlamını merak ediyor musun? Hemen el falı baktır çok şaşıracaksın."
  270.         //     ]
  271.         // );
  272.     }
  273.     /**
  274.      * @Route("astroloji-bakan-falcilar", name="astroloji-bakan-falcilar" , options={"utf8": true})
  275.      * @return Response
  276.      */
  277.     public function fortuneCategoryAstroloji()
  278.     {
  279.         $token $this->isUserLogin();
  280.         $data $this->getFortuneTellersBySlug("astroloji");
  281.         $desc $this->getFortuneCategories();
  282.         // return $this->render('home/category.html.twig',
  283.         //     [
  284.         //         'token' => $token,
  285.         //         'tellers' => $data,
  286.         //         'catName' => "Astroloji Falı",
  287.         //         'desc' => $desc,
  288.         //         'keywords' => "astroloji falı, burç falı, 12 burç falı, burclar, astrologlar, en iyi astroloji falı bakan falcılar, burç uyumlarına bak, sevgilimle buç uyumu, yüselen burc nedir",
  289.         //         'metaDesc' => "Astroloji falı yorumu bakan gerçek falcılar yamiba.com’da! Burcunnun özelliklerini ve geleceğini merak ediyor musun?"
  290.         //     ]
  291.         // );
  292.     }
  293.     /**
  294.      * @Route("falcilar", name="category.all" , options={"utf8": true})
  295.      * @return Response
  296.      */
  297.     public function fortuneCategoryAll()
  298.     {
  299.         $token $this->isUserLogin();
  300.         $data $this->getFortuneTellersAll();
  301.         
  302.         dump($data);
  303.         // return $this->render('home/category-all.html.twig',
  304.         //     [
  305.         //         'token' => $token,
  306.         //         'tellers' => $data,
  307.         //     ]
  308.         // );
  309.     }
  310.     /**
  311.      * @Route("hakkimizda", name="about.us" , options={"utf8": true})
  312.      * @return Response
  313.      */
  314.     public function aboutUs()
  315.     {
  316.         $token $this->isUserLogin();
  317.         $desc $this->getFortuneCategories();
  318.         // return $this->render('home/about.html.twig',
  319.         //     [
  320.         //         'token' => $token,
  321.         //         'desc' => $desc
  322.         //     ]
  323.         // );
  324.     }
  325.     /**
  326.      * @Route("p404",name="p404")
  327.      */
  328.     public function p404()
  329.     {
  330.         $token $this->isUserLogin();
  331.         return $this->render('home/p404.html.twig', ['token' => $token]);
  332.     }
  333.     /**
  334.      * @Route("nasil-kullanirim",name="how-to")
  335.      */
  336.     public function howTo()
  337.     {
  338.         $token $this->isUserLogin();
  339.         // return $this->render('home/how-to.html.twig', ['token' => $token]);
  340.     }
  341.     /**
  342.      * @Route("sikca-sorulan-sorular",name="faq")
  343.      */
  344.     public function Faqs()
  345.     {
  346.         $token $this->isUserLogin();
  347.         $API_Name "v1/faq";
  348.         $data $this->ApiGetMethod($API_Name);
  349.         // return $this->render('home/faq.html.twig', ["faqs" => $data,'token' => $token]);
  350.     }
  351.     private function ApiGetMethod($api_name)
  352.     {
  353.         $url $this->appUrl."api/" $api_name;
  354.         $ch curl_init();
  355.         curl_setopt($chCURLOPT_URL$url);
  356.         curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  357.         curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
  358.         $data curl_exec($ch);
  359.         curl_close($ch);
  360.         $data json_decode($data);
  361.         return $data;
  362.     }
  363.     private function getFortuneTellersBySlug($slug){
  364.         $curl curl_init();
  365.         curl_setopt_array($curl, array(
  366.             CURLOPT_URL => $this->appUrl."api/v1/category/$slug/fortune/tellers",
  367.             CURLOPT_RETURNTRANSFER => true,
  368.             CURLOPT_ENCODING => "",
  369.             CURLOPT_MAXREDIRS => 10,
  370.             CURLOPT_TIMEOUT => 30,
  371.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  372.             CURLOPT_CUSTOMREQUEST => "GET",
  373.             CURLOPT_POSTFIELDS => "",
  374.             CURLOPT_HTTPHEADER => array(
  375.                 "cache-control: no-cache",
  376.                 "content-type: application/x-www-form-urlencoded"
  377.             ),
  378.         ));
  379.         $response curl_exec($curl);
  380.         $err curl_error($curl);
  381.         curl_close($curl);
  382.         if ($err) {
  383.             dump($err);
  384.             return false;
  385.         } else {
  386.             return json_decode($response);
  387.         }
  388.     }
  389.     private function getFortuneTellersAll(){
  390.         $curl curl_init();
  391.         curl_setopt_array($curl, array(
  392.             CURLOPT_URL => $this->appUrl."api/v1/all/fortune/tellers",
  393.             CURLOPT_RETURNTRANSFER => true,
  394.             CURLOPT_ENCODING => "",
  395.             CURLOPT_MAXREDIRS => 10,
  396.             CURLOPT_TIMEOUT => 30,
  397.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  398.             CURLOPT_CUSTOMREQUEST => "GET",
  399.             CURLOPT_HTTPHEADER => array(
  400.                 "cache-control: no-cache",
  401.                 "postman-token: ec908936-9ebf-0ae6-23f2-b211cc207c0a"
  402.             ),
  403.         ));
  404.         $response curl_exec($curl);
  405.         $err curl_error($curl);
  406.         curl_close($curl);
  407.         if ($err) {
  408. //            dump($err);exit;
  409.             return false;
  410.         } else {
  411. //            dump($response);exit;
  412.             return json_decode($response);
  413.         }
  414.     }
  415.     
  416.     private function getFortuneCategories(){
  417.         $curl curl_init();
  418.         curl_setopt_array($curl, array(
  419.             CURLOPT_URL => $this->appUrl."api/v1/fortune/teller/categories",
  420.             CURLOPT_RETURNTRANSFER => true,
  421.             CURLOPT_ENCODING => "",
  422.             CURLOPT_MAXREDIRS => 10,
  423.             CURLOPT_TIMEOUT => 30,
  424.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  425.             CURLOPT_CUSTOMREQUEST => "GET",
  426.             CURLOPT_HTTPHEADER => array(
  427.                 "cache-control: no-cache",
  428.                 "postman-token: ec908936-9ebf-0ae6-23f2-b211cc207c0a"
  429.             ),
  430.         ));
  431.         $response curl_exec($curl);
  432.         $err curl_error($curl);
  433.         curl_close($curl);
  434.         if ($err) {
  435. //            dump($err);exit;
  436.             return false;
  437.         } else {
  438. //            dump($response);exit;
  439.             return json_decode($response);
  440.         }
  441.     }
  442.     /**
  443.      * @Route("login", name="login")
  444.      * @param Request $request
  445.      * @return JsonResponse
  446.      */
  447.     public function loginForm(Request $request): JsonResponse
  448.     {
  449.         $process $request->request->get('process'false);
  450.         if ($process) {
  451. //            var_dump($process);
  452.         } else {
  453.             $errorArray = array(
  454.                 'error' => true
  455.             );
  456.             return new JsonResponse($errorArray);
  457.         }
  458.         $email $request->request->get('loginemail');
  459.         $password $request->request->get('loginpassword');
  460.         $endpoint_url $this->appUrl."api/token/get";
  461.         // Sets our destination URL
  462. // Creates our data array that we want to post to the endpoint
  463.         $data_to_post = [
  464.             'email' => $email,
  465.             'password' => $password,
  466.         ];
  467. // Sets our options array so we can assign them all at once
  468.         $options = [
  469.             CURLOPT_URL => $endpoint_url,
  470.             CURLOPT_POST => true,
  471.             CURLOPT_POSTFIELDS => $data_to_post,
  472.         ];
  473. // Initiates the cURL object
  474.         $curl curl_init();
  475. // Assigns our options
  476.         curl_setopt_array($curl$options);
  477.         curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  478. // Executes the cURL POST
  479.         $results curl_exec($curl);
  480. // Be kind, tidy up!
  481.         curl_close($curl);
  482.         $decodedResult json_decode($resultstrue);
  483.         if (isset($decodedResult['token'])) {
  484.             $this->session->set("_token"$decodedResult['token']);
  485.             $this->session->set("_email"$decodedResult['data']['email']);
  486.         }
  487.         return new JsonResponse($decodedResult);
  488.     }
  489.     private function postAPICall($endPoint$dataToPost = array()){
  490.         $endpoint_url $this->appUrl."{$endPoint}";
  491.         // Sets our destination URL
  492. // Creates our data array that we want to post to the endpoint
  493.         $data_to_post $dataToPost;
  494. // Sets our options array so we can assign them all at once
  495.         $options = [
  496.             CURLOPT_URL => $endpoint_url,
  497.             CURLOPT_POST => true,
  498.             CURLOPT_POSTFIELDS => $data_to_post,
  499.         ];
  500. // Initiates the cURL object
  501.         $curl curl_init();
  502. // Assigns our options
  503.         curl_setopt_array($curl$options);
  504.         curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  505. // Executes the cURL POST
  506.         $results curl_exec($curl);
  507. // Be kind, tidy up!
  508.         curl_close($curl);
  509.         return$results;
  510.     }
  511.     private function isUserLogin()
  512.     {
  513.         $loginStatus $this->session->get('_token');
  514.         if ($loginStatus == null) {
  515.             return false;
  516.         } else {
  517.             return $loginStatus;
  518.         }
  519.     }
  520. }